Java Swing中的工具栏(JToolBar)和分割面版(JSplitPane)组件使用案例
一:工具栏(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.运行截图:
二:split pane(分割面版):
1.基本说明:
split pane(分割面版)一次可将两个组件同时显示在两个显示区中,若你想要同时在多个显示区显示组件,你便必须同时使用多个split pane。jsplitpane提供两个常数让你设置到底是要水平分割还是垂直分割。这两个常数分别是:horizontal_spit,vertical_split.除了这两个重要的常数外,jsplitpane还提供许多类常数让你使用
2.常用方法:
(1).jsplitpane构造方法:
jsplitpane():建立一个新的jsplitpane,里面含有两个默认按钮,并以水平方向排列.但没有continuous layout功能.
例如:jsplitpane jsplitpane1 = new 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);
截图:
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.运行截图:
上一篇: mysql下怎样运行脚本以运行niuzi.sql为例
下一篇: python 内置函数filter