(总结)Swing组件的使用
- 格式:doc
- 大小:17.92 KB
- 文档页数:19
Swing的用法以及实例使用swing时首先要导入一些相关的包:01//首先导入Swing 需要的包02 import javax.swing.*;03 import java.awt.*;04 import java.awt.event.*;05 //创建HelloWorld类06 public class HelloWorld {07 //创建主方法08 public static void main(String[] args) {09 try { //try语句块,监视该段程序10 //设置窗口风格11 UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());12 } catch (Exception e) { //捕获异常13 e.printStackTrace(); //异常信息输出14 }15 JFrame frame = new JFrame("Swing 第一个示例");//创建顶层容器并初始化16 Container c = frame.getContentPane(); //获取面板容器17 JPanel pane = new JPanel(); //创建面板panel 并初始化18 c.add(pane); //将面板添加到窗口19 pane.setLayout(new FlowLayout()); //设置布局管理器FlowLayout20 final JLabel label = new JLabel(); //创建标签label 并初始化21 JButton button = new JButton("按钮"); //创建button 并初始化22 pane.add(label); //向容器中添加组件label23 pane.add(button); //向容器中添加组件button24 //对按钮事件的处理方法25 button.addActionListener(new ActionListener() {26 public void actionPerformed(ActionEvent e) {27 label.setText("HelloWorld!"); //设置label 显示的内容28 }29 });30 //窗口设置结束,开始显示31 frame.addWindowListener(new Window32 //匿名类用于注册监听器33 public void windowClosing(WindowEvent e) {34 System.exit(0);} //程序退出35 });36 frame.setSize(300,240); //设置窗口大小37 frame.setVisible(true); //显示窗口38 }39 }以上程序中完全按照前面所介绍到的流程,首先是将Swing 所需要的包导入(第1~4 行,然后在主方法中创建顶层容器frame 并初始化(第15 行)。
(总结)Swing组件的使用Swing 的组件与AWT 组件相似,但又为每一个组件增添了新的方法,并提供了更多的高级组件.Swing 的基本组件:1.按钮(JButton):Swing 中的按钮可以显示图像,并且可以将按钮设置为窗口的默认图标,而且还可以将多个图像指定给一个按钮。
(1).JButton 常用的构造方法。
JButton(String text):按钮上显示字符。
JButton(Icon icon) :按钮上显示图标。
JButton(String text, Icon icon):按钮上既显示图标又显示字符。
(2).常用方法:b1.setEnabled(false); //使按钮当前不可用b1.setToolTipText("..."): //设置按钮提示文本b1.setMnemonic(KeyEvent.VK_D);// 将b1邦定alt+D键(3).案例代码:[java] view plain copy print?public class JButtonExample3 extends JPanel implements ActionListener{ protected JButton b1, b2, b3; public JButtonExample3() { ImageIconleftButtonIcon = createImageIcon("right.gif");ImageIcon middleButtonIcon =createImageIcon("middle.gif"); ImageIcon rightButtonIcon = createImageIcon("left.gif");b1 = new JButton("失效中间按钮(D)", leftButtonIcon);b1.setVerticalTextPosition(AbstractButton.CENTER);// 水平中间对齐b1.setHorizontalTextPosition(AbstractButton.LEADING);// 相当于LEFTb1.setMnemonic(KeyEvent.VK_D);// 将b1邦定alt+D键b1.setActionCommand("disable");b2 = new JButton("M中间按钮", middleButtonIcon);b2.setVerticalTextPosition(AbstractButton.BOTTOM);b2.setHorizontalTextPosition(AbstractButton.CENTER);b2.setMnemonic(KeyEvent.VK_M);// 将b2邦定alt+M键b3 = new JButton("E激活中间按钮", rightButtonIcon);b3.setMnemonic(KeyEvent.VK_E);// 将b3邦定alt+E键b3.setActionCommand("enable");b3.setEnabled(false); // 给1和3添加事件监听b1.addActionListener(this);b3.addActionListener(this); // 设置按钮提示文本b1.setToolTipText("点击这个按钮,将使中间的按钮失效!"); b2.setToolTipText("点击这个按钮,没有任何的事件发生!");b3.setToolTipText("点击这个按钮,将使中间的按钮有效"); // 将按钮添加到JPanel中add(b1);add(b2); add(b3); } public void actionPerformed(ActionEvent e) { if ("disable".equals(e.getActionCommand())){ b2.setEnabled(false);b1.setEnabled(false);b3.setEnabled(true); } else{ b2.setEnabled(true);b1.setEnabled(true);b3.setEnabled(false); } }protected static ImageIcon createImageIcon(String path) { .URL imgURL =JButtonExample3.class.getResource(path); if (imgURL != null) { return newImageIcon(imgURL); } else{ System.err.printl n("Couldn′t find file: " + path); return null; } } public static void main(String[] args) { // 设置使用新的swing界面//提供一个关于新创建的JFrame 是否应该具有当前外观为其提供的Window 装饰(如边框、关闭窗口的小部件、标题等等)的提示。
java-Swing控件的用法和范例类JTableJTable用来显示和编辑规则的二维单元表。
JTable有很多用来自定义其呈现和编辑的设施,同时提供了这些功能的默认设置,从而可轻松地设置简单表。
例如,要设置一个10行10列的表:TableModel dataModel=new AbstractTableModel(){public int getColumnCount(){return10;}public int getRowCount(){return10;}public Object getValueAt(int row,int col){return new Integer(row*col);} };JTable table=new JTable(dataModel);JScrollPane scrollpane=new JScrollPane(table);注意,如果要在单独的视图中(在JScrollPane外)使用JTable并显示表标题,则可以使用getTableHeader()获取并单独显示它。
设计使用JTable的应用程序时,要严格注意用来表示表数据的数据结构。
DefaultTableModel 是一个模型实现,它使用一个Vector来存储所有单元格的值。
该Vector由包含多个Object 的Vector组成。
除了将数据从应用程序复制到DefaultTableModel中之外,还可以TableModel接口的方法来包装数据,这样可将数据直接传递到JTable,如以上示例所示。
这通常可以提高应用程序的效率,因为模型可以自由选择最适合数据的内部表示形式。
在决定使用AbstractTableModel还是使用DefaultTableModel方面有一个好的实践经验,即在创建子类时使用AbstractTableModel作为基类,在不需要创建子类时则使用DefaultTableModel。
主要参考文现:[美]Herbert Schildt 著 鄢爱兰 鹿江春译 《java 参考大全 J2SE 》 清华大学出版社 2006年1月孙卫琴 《Java 面向对象编程》 出版社及日期不详java API 开发人员文档本文作者:黄邦勇帅本文的说明:本文主要讲解了对大学初学Swing 时对根面板JRootPane ,内容面板containPane ,层面板JLayeredPane ,玻璃面板glassPnae 的困惑,本文对各种面板作了详尽的讨论,让读者能真正的明白根面板,内容面板,层面板到底是什么,他们在程序中的作用,以及他们之间的关系,透明性,可见性,作了讲解。
本文内容完全属于个人见解与参考文现的作者无关,其中难免有误解之处,望指出更正。
Swing 组件的各种面板(JRootPane 根面板,JLayeredPane 层面板等)第一部分:JFrame 中各面板间的关系,透明性与可见性问题注:在某些地方把面板也叫做窗格,比如根面板,也叫根窗格,层面板也叫分层窗格等。
注意窗格与窗体是不一样的。
在Swing 中的JFrame 窗体与AWT 中的Frame 窗体有一些不同。
JFrame 由他的窗体本身加上其上的JRootPane 根面板,JLayeredPane 层面板,containPane 内容面板,glassPane 玻璃面板,JMenuBar 菜单栏(可选,不包括在内)四部分组成。
其中根面板在JRootPane 类中实现,层面板在JLayeredPane 类中实现,他们都是JComponent 的子类。
而containPane 和glassPane 没有专门对应的类。
1、各种面板(或称窗格)的关系及作用:JRootPane 根面板:该面板是在JFrame 窗体创建时就默认添加进来的,是所有其他面板的载体或父级,他覆盖窗体的除标题栏和边条之外的整个表面。
根面板默认是不可见的。
根面板负责管理其他面板(层面板,玻璃面板),如使其他面板覆盖整个JFrame 窗体等。
界面开发的流程:继承JFrame;创建组建设置布局管理器添加组建设置窗体属性显示窗体Swing的常用组建JPanel 用于处理三大布局管理器无法处理的较复杂的布局面板组建、非顶层容器;一个界面只能有一个窗体,但是可以有多个JPanel组建,而在JPanel上可以使用三大布局管理器这样可以组合较复杂的布局;package com.jiemiankaifa;import java.awt.*;import javax.swing.*;public class MyFrame4 extends JFrame{/*** @param args*///定义组建JPanel jp1,jp2,jp3;//定义面板组件JButton jb1,jb2,jb3,jb4,jb5,jb6//定义按钮组件public static void main(String[] args) {// TODO Auto-generated method stubMyFrame4 m=new MyFrame4();}public MyFrame4(){//创建组建jp1=new JPanel();jp2=new JPanel();jb1=new JButton("陕西");jb2=new JButton("甘肃");jb3=new JButton("宁夏");jb4=new JButton("新疆");jb5=new JButton("青海");jb6=new JButton("西藏");//添加组建//向面板组件中添加按钮组件jp1.add(jb1);jp1.add(jb2);jp2.add(jb3);jp2.add(jb4);jp2.add(jb5);//向窗体上添加面板组件,并指明添加的位置(窗体未声明则默认为边界组件)this.add(jp1, BorderLayout.NORTH);this.add(jp2, BorderLayout.SOUTH);this.add(jb6, BorderLayout.CENTER);//设置窗体的标题this.setTitle("复杂布局的案例");//设置窗体的大小this.setSize(200,300);//设置窗体在电脑桌面上的位置this.setLocation(200, 200);//设置窗体关闭时,jvm也关闭this.setDefaultCloseOperation(MyFrame4.EXIT_ON_CLOSE); //显示窗体this.setVisible(true);}}执行结果:会员登录界面的编制文本框 JTextField密码框JPasswordField标签JLabelpackage com.jiemiankaifa;import java.awt.*;import javax.swing.*;public class MyFrame5 extends JFrame{/*** @param args*///定义组件JPanel jp1,jp2,jp3;//定义面板组件JLabel jlb1,jlb2;//定义标签组件JButton jb1,jb2;//定义按钮组件JTextField jtf;//定义文本框组件JPasswordField jpf;//定义密码框组件public static void main(String[] args) { // TODO Auto-generated method stubMyFrame5 m=new MyFrame5();}public MyFrame5(){//创建组件//创建面板组件jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();//创建标签组件jlb1=new JLabel("姓名");jlb2=new JLabel("密码");//创建按钮组件jb1=new JButton("登录");jb2=new JButton("重置");//创建文本框组件jtf=new JTextField(10);//创建密码框组件jpf=new JPasswordField(10);//添加组件//向面板jp1中添加标签组件、文本框组件jp1.add(jlb1);jp1.add(jtf);//向面板jp2添加标签组件、密码框组件jp2.add(jlb2);jp2.add(jpf);//向面板jp3中添加按钮组件jp3.add(jb1);jp3.add(jb2);//向窗体中添加面板组件this.add(jp1);this.add(jp2);this.add(jp3);//设置窗体的布局为网格布局,JPanel的布局默认为流式布局this.setLayout( new GridLayout(3,1));//设置窗体的标题this.setTitle("登录框");//设置窗体的大小this.setSize(300,200);//设置窗体在电脑桌面上的位置this.setLocation(200, 200);//关闭窗体时,也关闭jvmthis.setDefaultCloseOperation(MyFrame5.EXIT_ON_CLOSE); //显示窗体this.setVisible(true);}}执行结果:复选框、单选框package com.jiemiankaifa;import java.awt.*;import javax.swing.*;public class MyFrame6 extends JFrame{/*** @param args*///定义组建JPanel jp1,jp2,jp3;JLabel jlb1,jlb2;JButton jb1,jb2;JCheckBox jcb1,jcb2,jcb3;JRadioButton jrb1,jrb2;ButtonGroup bg;public static void main(String[] args) {// TODO Auto-generated method stubMyFrame6 m=new MyFrame6();}//创建组建public MyFrame6(){jp1=new JPanel();jp2=new JPanel();jp3=new JPanel();jb1=new JButton("注册用户");jb2=new JButton("取消注册");jlb1=new JLabel("你喜欢的运动");jlb2=new JLabel("你的性别");jcb1=new JCheckBox("足球");jcb2=new JCheckBox("网球");jcb3=new JCheckBox("排球");jrb1=new JRadioButton("男");jrb2=new JRadioButton("女");ButtonGroup bg=new ButtonGroup();bg.add(jrb1);bg.add(jrb2);jp1.add(jlb1);jp1.add(jcb1);jp1.add(jcb2);jp1.add(jcb3);jp2.add(jlb2);jp2.add(jrb1);jp2.add(jrb2);jp3.add(jb1);jp3.add(jb2);this.setLayout( new GridLayout(3,1));this.add(jp1);this.add(jp2);this.add(jp3);this.setSize(300,200);this.setLocation(200, 200);this.setDefaultCloseOperation(MyFrame6.EXIT_ON_CLOSE); this.setVisible(true);}}执行结果:(注:可编辑下载,若有不当之处,请指正,谢谢!)。
java图形化⼯具Swing基本使⽤Swing介绍:使⽤Swing开发图形界⾯⽐AWT更加优秀,因为Swing是⼀种轻量级组件,它采⽤100% Java实现,不再依赖于本地平台的图形界⾯,所以可以在所有平台上保持相同的运⾏效果,对跨平台⽀持⽐较出⾊,实现了真正的⼀次编写处处运⾏。
除此之外,Swing提供了⽐AWT更多的图形界⾯组件,因此可以开发出更美观的图形界⾯。
Swing组件的基本使⽤⼤部分Swing组件都是JComponent抽象类的直接或间接⼦类,JComponent类定义了所有⼦类组件的通⽤⽅法。
JComponent类是AWT中java.awt.Container类的⼦类,这也是AWT和Swing的联系之⼀。
绝⼤部分Swing组件类继承了Container类,所以Swing组件都可作为容器使⽤。
Swing的继承关系结构如下:上⾯的深⾊部分都是可以在AWT找到对应组件的。
⽐如我们的JButton就和我们Awt中的Button很相似。
这些和Awt有关联的组件就是在原来Awt组件的名字前⾯加了⼀个J。
但是还是有⼏个例外:JComboBox: 对应AWT⾥的Choice组件,但⽐Choice组件功能更丰富JFileChooser: 应于AWT⾥的FileDialog组件JScrollBar: 对应于AWT⾥的Scrollbar组件,注意两个组件类名中字母的⼤⼩写差别。
JCheckBox 对应于AWT⾥的checkbox组件,注意两个组件类名中字母的⼤⼩写差JCheckBoxMenuitem: 对应于AWT⾥的CheckboxMenuItem 组件,注意两个组件类名中字母的⼤⼩写差别。
在AWT中的东西,除了Canvas之外,别的所有的Awt组件都提供了相应的实现,Swing组件⽐AWT组件的功能更加强⼤。
相对于AWT组件,Swing组件具有如下4个额外功能。
(1),可以为Swing组件设置提⽰信息。
swing组件及其用法Swing组件是用于创建图形用户界面的Java库。
它提供了丰富的界面元素和布局管理器,可以实现各种图形界面应用程序。
下面是一些常用的Swing组件及其用法:1. JFrame:顶层窗口组件,用于创建一个窗口。
用法示例:```javaJFrame frame = new JFrame("My Frame");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(500, 300);frame.setVisible(true);```2. JPanel:容器组件,用于组织其他组件。
用法示例:```javaJPanel panel = new JPanel();panel.setLayout(new FlowLayout());panel.add(new JButton("Button 1"));panel.add(new JButton("Button 2"));```3. JButton:按钮组件,用于触发动作。
用法示例:```javaJButton button = new JButton("Click me");button.addActionListener(e -> System.out.println("Buttonclicked"));```4. JLabel:标签组件,用于显示文本或图像。
用法示例:```javaJLabel label = new JLabel("Hello, world!");label.setIcon(new ImageIcon("image.png"));```5. JTextField:文本输入框组件,用于接收用户输入。
java语言中awt和swing组件的基本用法Java语言中AWT和Swing组件是用于创建图形用户界面(GUI)的工具。
AWT(Abstract Window Toolkit)是Java最早提供的GUI工具包,而Swing是在AWT基础上进行了扩展和改进的高级GUI工具包。
本文将介绍AWT和Swing组件的基本用法。
一、AWT组件的基本用法AWT组件是Java中最基本的GUI组件,它们在不同的平台上都能够保持一致的外观和行为。
下面是AWT常用组件的基本用法:1. Frame(窗口):使用Frame类可以创建一个基本的窗口。
可以调用setTitle()方法设置窗口标题,setSize()方法设置窗口大小,setVisible()方法显示窗口。
例如:```javaFrame frame = new Frame("My Window");frame.setSize(400, 300);frame.setVisible(true);```2. Panel(面板):Panel是一个容器,用于存放其他组件。
可以使用add()方法将其他组件添加到Panel中。
例如:```javaPanel panel = new Panel();Button button = new Button("Click Me");panel.add(button);```3. Button(按钮):Button用于触发特定的动作。
可以使用addActionListener()方法为按钮添加动作监听器。
例如:```javaButton button = new Button("Click Me");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {System.out.println("Button Clicked");}});```4. Label(标签):Label用于显示文本信息。
1. 对象名.setBackground(Color . red);//背景颜色2. 对象名.setToolTipText(); //鼠标移到按钮或文字上的提示信息三3.把中间容器放到界面顶层容器里:图片用:主界面对象.setContentPane(中间容器对象);菜单用:主界面对象.setJMenuBar(中间容器对象);4. 对象名.addSeparator(); //水平分割线5.对象名.setBounds(x位置, y位置, width宽度, height高度);6. 设置界面框架大小i.setSize(700,400);一、swing中添加图片具体步骤:JFrame i=new JFrame(); //创建界面(必须导入)JPanel jp=new JPanel(); //创建一个中间容器i.setContentPane(jp); //把中间容器放到主界面ImageIcon image=new ImageIcon("e:/b.jpg"); //添加图片JLabel jl = new JLabel(image); //把图片放到一个容器里jp.add(jl); //把放图片的容器添加到中间容器里i.setVisible(true); //设置主界面可不可见步骤: 1 、先建主界面(所以的程序都一样)2、建立一个中间容器(比如:图片、按钮、菜单等)图片用:JPanel jp=new JPanel();按钮用:菜单用:JMenuBar jb=new JMenuBar();二、swing中创建菜单栏具体步骤:i.setSize(700,400); //设置界面框架大小JMenuBar jb=new JMenuBar(); //创建菜单的中间容器i.setJMenuBar(jb); //把菜单中间容器放在主界面中(JFrame)JMenu jm1=new JMenu("文件"); //菜单栏命名JMenu jm2=new JMenu("编辑"); //菜单栏命名jm2.setToolTipText("这是一个编辑菜单,用来编辑文本"); //鼠标移上有提示文本jb.add(jm1); //把菜单栏命名对象放到创建的中间容器里(所有的步骤都一样)jb.add(jm2); //把菜单栏命名对象放到创建的中间容器里(所有的步骤都一样)JMenuItem ji1=new JMenuItem("打开"); //创建菜单的子菜单jm1.setToolTipText("这是一个打开菜单,用来操作文件"); //鼠标移上有提示文本 JMenuItem ji2=new JMenuItem("保存");//创建菜单的子菜单jm1.add(ji1); // 把子菜单放到要放的菜单选项中(这把保存添加到文件上面) jm1.addSeparator();jm1.add(ji2); //同上一样jm1.addSeparator(); //水平分割线i.setVisible(true); //是否显示窗口三、创建按钮具体步骤:1.JButton();参数可选为 Icon(带图标的) string text(带文本的);2. 方法: (1)、对象名.getText() 对象名.setText()(2)、对象名.setEnable(true or false);(3)、对象名.setVisible(true); //组件是否可见。
JavaSwing使⽤总结(转载)随笔转载⾃:地址:1. GUI编程引⾔以前的学习当中,我们都使⽤的是命令交互⽅式: 例如:在DOS命令⾏中通过javac java命令启动程序.软件的交互的⽅式: 1. 命令交互⽅式 图书管理系统 2. 图形交互⽅式 ava提供了专业的API⽤于开发图形⽤户界⾯ GUI--> Graphic User Interface 将要了解GUI API的框架结构,以及GUI组件以及组件之间的关系,容器和布局管理器,颜⾊,字体等.2. GUI的分类2.1. AWT Java1.0版本的图形⽤户界⾯库,设计⽬标是帮助程序员编写在所有平台上都能良好表现的GUI程序。
为了实现这个⽬标Java1.0提供了抽象窗⼝⼯具集(AWT),但是这个⽬标并没有达到。
AWT在所有的系统上表现都不好。
因为:最初版本的AWT是在⼀个⽉内构思,设计和实现的(Think in Java )。
Abstract Window Toolkit 抽象窗⼝⼯具集 Java将图形⽤户界⾯相关的类捆绑在了⼀起,放在了⼀个称之为抽象窗⼝⼯具集的库中.AWT适合开发简单的图形⽤户界⾯,并不适合开发复杂的GUI项⽬. 位于: java.awt.* 中,定义了很多的组件类,开发者可以直接创建对象加以使⽤ 缺点: 所有的图形界⾯都依赖于底层的操作系统,容易发⽣于特定平台相关的故障. AWT调⽤本地系统资源⽣成图形化界⾯, 依赖本地平台. 1.02.2. SwingSUN公司对AWT进⾏了升级,基于AWT,推出了⼀种更稳定,更通⽤和更灵活的库.称之为Swing组件库(Swing component)。
既然都是⽤于GUI设计的组件库,那么为了区分Swing组件类和对应的AWT组件类,Swing组件类都已字母J为前缀.位于:javax.swing.* 中,提供了和AWT中等同的所有的组件类,但是类名的前⾯多加了⼀个J.SWING可以跨平台. 1.2我们主要学习Swing GUI组件.3. Java GUI APIGUI API包含的类分为三个部分:组件类(component class) 容器类(container class),和辅助类(helper class)1. 组件类是⽤来创建⽤户图形界⾯的,例如JButton,JLabel,JTextField.2. 容器类是⽤来包含其他组件的,例如JFrame,JPanel3. 辅助类是⽤来⽀持GUI组件的,例如Color,Font3.1. 组件类在图形⽤户界⾯程序中当我们想要创建按钮、复选框和滚动条等这些可以显⽰在屏幕上的对象,该如何创建。
AWT和Swing都是Java中用于创建图形用户界面(GUI)的工具。
它们提供了一系列的组件和容器,可以用来创建和管理用户界面元素。
AWT(Abstract Window Toolkit)是Java提供的原始GUI工具包,它包含了许多用于创建GUI组件和容器的类。
Swing则是在AWT的基础上提供了一系列的增强功能和改进,包括更好的组件、更强大的布局管理器以及改进的事件处理等。
下面分别介绍AWT和Swing的一些基本组件和用法:AWT组件:1. 组件(Component):这是所有GUI组件的基类,包括按钮、标签、文本框等。
可以使用add()方法将组件添加到容器中。
2. 容器(Container):容器是一种特殊的组件,可以包含其他组件。
可以使用add()方法将组件添加到容器中。
3. 布局管理器(LayoutManager):布局管理器用于控制组件在容器中的布局方式。
AWT提供了几种布局管理器,如BorderLayout、FlowLayout、GridLayout等。
示例代码:```javaimport java.awt.*;import java.awt.event.*;public class MyAWTDemo {public static void main(String[] args) {Frame frame = new Frame(); // 创建一个Frame窗口frame.setTitle("JavaGUIComponent"); // 设置窗口标题 frame.setBounds(20, 30, 300, 280); // 设置窗口大小和位置frame.setVisible(true); // 设置窗口为可见Button button = new Button("Click me!"); // 创建一个按钮frame.add(button); // 将按钮添加到Frame窗口中frame.addWindowListener(new WindowAdapter() { // 添加窗口关闭事件监听器public void windowClosing(WindowEvent e) {System.exit(0); // 关闭应用程序}});}}```Swing组件:1. JComponent:这是Swing中所有组件的基类,继承自AWT的Component类。
(总结)Swing组件的使用Swing 的组件与AWT 组件相似,但又为每一个组件增添了新的方法,并提供了更多的高级组件.Swing 的基本组件:1.按钮(JButton):Swing 中的按钮可以显示图像,并且可以将按钮设置为窗口的默认图标,而且还可以将多个图像指定给一个按钮。
(1).JButton 常用的构造方法。
JButton(String text):按钮上显示字符。
JButton(Icon icon) :按钮上显示图标。
JButton(String text, Icon icon):按钮上既显示图标又显示字符。
(2).常用方法:b1.setEnabled(false); //使按钮当前不可用b1.setToolTipText("..."): //设置按钮提示文本b1.setMnemonic(KeyEvent.VK_D);// 将b1邦定alt+D键(3).案例代码:[java] view plain copy print?public class JButtonExample3 extends JPanel implements ActionListener{ protected JButton b1, b2, b3; public JButtonExample3() { ImageIconleftButtonIcon = createImageIcon("right.gif");ImageIcon middleButtonIcon =createImageIcon("middle.gif"); ImageIcon rightButtonIcon = createImageIcon("left.gif");b1 = new JButton("失效中间按钮(D)", leftButtonIcon);b1.setVerticalTextPosition(AbstractButton.CENTER);// 水平中间对齐b1.setHorizontalTextPosition(AbstractButton.LEADING);// 相当于LEFTb1.setMnemonic(KeyEvent.VK_D);// 将b1邦定alt+D键b1.setActionCommand("disable");b2 = new JButton("M中间按钮", middleButtonIcon);b2.setVerticalTextPosition(AbstractButton.BOTTOM);b2.setHorizontalTextPosition(AbstractButton.CENTER);b2.setMnemonic(KeyEvent.VK_M);// 将b2邦定alt+M键b3 = new JButton("E激活中间按钮", rightButtonIcon);b3.setMnemonic(KeyEvent.VK_E);// 将b3邦定alt+E键b3.setActionCommand("enable");b3.setEnabled(false); // 给1和3添加事件监听b1.addActionListener(this);b3.addActionListener(this); // 设置按钮提示文本b1.setToolTipText("点击这个按钮,将使中间的按钮失效!"); b2.setToolTipText("点击这个按钮,没有任何的事件发生!");b3.setToolTipText("点击这个按钮,将使中间的按钮有效"); // 将按钮添加到JPanel中add(b1);add(b2); add(b3); } public void actionPerformed(ActionEvent e) { if ("disable".equals(e.getActionCommand())){ b2.setEnabled(false);b1.setEnabled(false);b3.setEnabled(true); } else{ b2.setEnabled(true);b1.setEnabled(true);b3.setEnabled(false); } }protected static ImageIcon createImageIcon(String path) { .URL imgURL =JButtonExample3.class.getResource(path); if (imgURL != null) { return newImageIcon(imgURL); } else{ System.err.printl n("Couldn′t find file: " + path); return null; } } public static void main(String[] args) { // 设置使用新的swing界面//提供一个关于新创建的JFrame 是否应该具有当前外观为其提供的Window 装饰(如边框、关闭窗口的小部件、标题等等)的提示。
JFrame.setDefaultLookAndFeelDecorated(true);// 创建一个窗体JFrame frame = new JFrame("小龙按钮");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E); // 创建一个面板JButtonExample3 newContentPane = new JButtonExample3();newContentPane.setOpaque(true);frame.setContentPane(newContentPane); // 显示窗体frame.pack();frame.setLocation(300, 200);frame.setVisible(true); } }运行截图:(说明:以下关于列表框内容部分出自此处:点击打开链接,特此声明!2.组合框(JComboBox):组合框(下拉列表JComboBox)使用方法及示例详解:构造方法:* JComboBox() 建立一个JComboBox组件.* JComboBox(ComboBoxModel model) 根据model建立一个JComboBox组件.* JComboBox(Objext[] items) 利用数组对象建立一个JComboBox组件.* JComboBox(Vector items) 利用Vector对象建立一个JComboBox组件.常用方法:....综合示例:[java] view plain copy print?<spanstyle="background-color: rgb(255, 255, 255);">import java.awt.*; /* 包含用于创建用户界面和绘制图形图像的所有类。
*/ import javax.swing.*; /* 提供一组"轻量级"组件,尽量让这些组件在所有平台上的工作方式都相同*/public class JComboBoxDemo extends JFrame{ public JComboBoxDemo() { /** Container是所有容器的父类,又是Java语言的组件类Component的子类. 容器是一种具有容纳其他组件和容器的功能的组件* 一个Java的图形用户界面的最基本元素是组件,组件是可以以图形化的方式显示在屏幕上并能与用户进行交互的对象,如一个按钮,一个文本框等.* 在Java中,通常将组件放在一定的容器内使用this.getContentPane()方法返回此窗体的contentPane 对象*/ Container contentPane =this.getContentPane(); /* 创建一个面板对象,指定布局管理器为GridLayout,1行2列.Jpanel的默认版面管理为FlowLayout */ JPanel jPanel1 = new JPanel(new GridLayout(1, 2)); // 利用String数组建立JComboBox String[] fruit = { "苹果", "香蕉", "桔子", "梨", "芒果" };JComboBox jComboBox1 = new JComboBox(fruit); jComboBox1.addItem("其他"); // 在列表框选项的最后再添加一个"其他"选项// 设置jList1对象的带标题边框jComboBox1.setBorder(BorderFactory.createTitledBorder( "您最喜欢的水果:")); // 添加列表框jComboBox1至面板jPanel1.add(jComboBox1);// 利用ComboBoxModel建立JComboBox ComboBoxModel myModel = new MyModel(); JComboBox jComboBox2 = new JComboBox(myModel); // 设置jList1对象的带标题边框jComboBox2.setBorder(BorderFactory.createTitledBorder( "您最喜欢的水果:")); // 添加列表框jComboBox2至面板jPanel1.add(jComboBox2);// 添加面板至父容器contentPane.add(jPanel1); // 设置本窗体的标题this.setTitle("JComboBoxDemo"); // 设置本窗体显示的初始大小this.setSize(350, 90);this.setLocation(300, 200); // 设置本窗体初始可见this.setVisible(true); } class MyModel extends DefaultComboBoxModel{ String[] fruit = { "苹果", "香蕉", "桔子", "梨", "芒果" }; MyModel() { for (int i = 0;i < fruit.length; i++) { /* addElement()方法用于向列表框添加选项元素*/this.addElement(fruit[i]); } }} public static void main(String args[]){ JComboBoxDemo test = new JComboBoxDemo(); } }</span> 截图:3.列表框(JList):列表框的功能与下拉列表框相似,也是让用户在几个条目中做出选择,但又有一些区别,它提供给用户的选择模式更为多样,分别是单一选择、连续选择、多项选择,对应于ListSelectionModel 中的3个常量:(1) static int SINGLE_SELECTION 只能选择一条。