欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java Swing中的工具栏(JToolBar)和分割面版(JSplitPane)组件使用案例

程序员文章站 2024-02-29 11:16:58
一:工具栏(jtoolbar) 代码示例: 复制代码 代码如下: import javax.swing.*; //工具栏的使用案例 public class jt...

一:工具栏(jtoolbar)

代码示例:

复制代码 代码如下:

import javax.swing.*;

//工具栏的使用案例
public class jtoolbardemo2_jigloo extends javax.swing.jframe {

 private jtoolbar myjtoolbar;
 private jbutton jb_file;
 private jbutton jb_edit;
 private jbutton jb_tools;
 private jbutton jb_help;

 public static void main(string[] args) {
  swingutilities.invokelater(new runnable() {
   public void run() {
    jtoolbardemo2_jigloo inst = new jtoolbardemo2_jigloo();
    inst.setlocationrelativeto(null);
    inst.setvisible(true);
   }
  });
 }

 public jtoolbardemo2_jigloo() {
  super();
  initgui();
 }

 private void initgui() {
  try {
   setdefaultcloseoperation(windowconstants.dispose_on_close);
   getcontentpane().setlayout(null);
   getcontentpane().setbackground(new java.awt.color(255, 128, 255));
   {
    myjtoolbar = new jtoolbar();
    getcontentpane().add(myjtoolbar);
    myjtoolbar.setbounds(29, 12, 320, 38);
    myjtoolbar.setbackground(new java.awt.color(255, 255, 255));
    {
     jb_file = new jbutton();
     myjtoolbar.add(jb_file);
     jb_file.settext("\u6587\u4ef6");
     jb_file.setpreferredsize(new java.awt.dimension(80, 34));
     jb_file.seticon(new imageicon("images//addnode.jpg"));
     jb_file.setfont(new java.awt.font("楷体", 0, 14));
     jb_file.settooltiptext("点此每次新增一个结点");
     jb_file.setbackground(new java.awt.color(255, 255, 128));
    }
    {
     jb_edit = new jbutton();
     myjtoolbar.add(jb_edit);
     jb_edit.settext("\u7f16\u8f91");
     jb_edit.settooltiptext("点此每次新增一个结点");
     jb_edit.seticon(new imageicon("images//addside.jpg"));
     jb_edit.setfont(new java.awt.font("楷体", 0, 14));
     jb_edit.setbackground(new java.awt.color(255, 255, 128));
     jb_edit.settooltiptext("首次点击结束结点输入,然后增加一条边");
     jb_edit.setpreferredsize(new java.awt.dimension(78, 34));
    }
    {
     jb_tools = new jbutton();
     myjtoolbar.add(jb_tools);
     jb_tools.settext("\u89c6\u56fe");
     jb_tools.seticon(new imageicon("images//drawfigure.jpg"));
     jb_tools.setfont(new java.awt.font("楷体", 0, 14));
     jb_tools.setbackground(new java.awt.color(255, 255, 128));
     jb_tools.settooltiptext("首次点击结束边的输入,然后绘制图形");
     jb_tools.setpreferredsize(new java.awt.dimension(94, 34));
    }
    {
     jb_help = new jbutton();
     myjtoolbar.add(jb_help);
     jb_help.settext("\u5e2e\u52a9");
     jb_help.seticon(new imageicon("images//shortestpath.jpg"));
     jb_help.setfont(new java.awt.font("楷体", 0, 14));
     jb_help.setbackground(new java.awt.color(255, 255, 128));
     jb_help.settooltiptext("首次点击变换按钮,选择起始点求其最短路径");
     jb_help.setpreferredsize(new java.awt.dimension(95, 34));
    }
   }
   pack();
   setsize(400, 300);
  } catch (exception e) {
   e.printstacktrace();
  }
 }
}

4.运行截图:

Java Swing中的工具栏(JToolBar)和分割面版(JSplitPane)组件使用案例

二:split pane(分割面版):

1.基本说明:

    split pane(分割面版)一次可将两个组件同时显示在两个显示区中,若你想要同时在多个显示区显示组件,你便必须同时使用多个split pane。jsplitpane提供两个常数让你设置到底是要水平分割还是垂直分割。这两个常数分别是:horizontal_spit,vertical_split.除了这两个重要的常数外,jsplitpane还提供许多类常数让你使用

2.常用方法:

(1).jsplitpane构造方法:

jsplitpane():建立一个新的jsplitpane,里面含有两个默认按钮,并以水平方向排列.但没有continuous layout功能.  

例如:jsplitpane jsplitpane1 = new jsplitpane();

截图:

Java Swing中的工具栏(JToolBar)和分割面版(JSplitPane)组件使用案例

jsplitpane(int neworientation):建立一个指定水平或垂直方向切割jsplitpane,但没有continuous layout功能。

jsplitpnae(int neworientation,boolean newcontinuouslayout): 建立一个指定水平或垂直方向切割的jsplitpane,且指定是否具有continuous layout功能。

jsplitpane(int neworientation,component newleftcomponent,component newrightcomponent):建立一个指定水平或垂直方向切割的jsplitpane,且指定显示区所要显示的组件,但没有continuous layout功能。

例如:jsplitpane = new jsplitpane(jsplitpane.horizontal_split, jscrollpane,jlabel);

截图:

Java Swing中的工具栏(JToolBar)和分割面版(JSplitPane)组件使用案例

jsplitpane(int neworientation,boolean newcontinuouslayout,component newleftcomponent,component newrightcomponent):建立一个指定水平或垂直方向切割的jsplitpane,且指定显示区所要显示的组件,并设置是否continuous layout功能。

上面所说的continuous layout意思是指当你拖曳切割面版的分隔线时,窗口内的组件是否会随着分隔线的拖曳而动态改变大小。

3.代码示例:

复制代码 代码如下:

package com.jsplitpanedemo.com;

import java.awt.*;
import javax.swing.*;

public class jsplitpanedemo3 {
 jframe f;
 container contentpane;
 public jsplitpanedemo3() {
  f = new jframe("jsplitpanedemo2");
  contentpane = f.getcontentpane();

  jlabel label1 = new jlabel("label 1", jlabel.center);
  label1.setbackground(color.green);
  // setopaque(ture)方法的目的是让组件变成不透明,这样我们在jlabel上所设置的颜色显示出来。
  label1.setopaque(true);

  jlabel label2 = new jlabel("label 2", jlabel.center);
  label2.setbackground(color.pink);
  label2.setopaque(true);

  jlabel label3 = new jlabel("label 3", jlabel.center);
  label3.setbackground(color.yellow);
  label3.setopaque(true);

  /*
   * 加入label1,label2到splitpane1中,并设置此splitpane1为水平分割且具有continuous layout的
   * 功能。
   */

  jsplitpane splitpane1 = new jsplitpane(jsplitpane.horizontal_split,
    false, label1, label2);
  /*
   * 设置splitpane1的分隔线位置,0.3是相对于splitpane1的大小而定,因此这个值的范围在0.0~1.0
   * 中。若你使用整数值来设置splitpane的分隔线位置,如第34行所示,则所定义的值以pixel为计算单位
   */
  splitpane1.setdividerlocation(0.3);
  splitpane1.setresizeweight(0.3);
  
  //设置jsplitpane是否可以展开或收起(如同文件总管一般),设为true表示打开此功能。
  splitpane1.setonetouchexpandable(true);
  splitpane1.setdividersize(10);// 设置分隔线宽度的大小,以pixel为计算单位。

  jsplitpane splitpane2 = new jsplitpane(jsplitpane.vertical_split,
    false, splitpane1, label3);
  splitpane2.setdividerlocation(35);
  // 设置jsplitpane是否可以展开或收起(如同文件总管一般),设为true表示打开此功能.
  splitpane2.setonetouchexpandable(false);
  splitpane2.setdividersize(5);

  contentpane.add(splitpane2);
  f.setsize(250, 200);
  f.setlocation(300, 200);
  f.setvisible(true);
  f.setdefaultcloseoperation(jframe.exit_on_close);
 }

 public static void main(string[] args) {
  new jsplitpanedemo3();
 }
}

4.运行截图:

Java Swing中的工具栏(JToolBar)和分割面版(JSplitPane)组件使用案例