Swing组件的使用_第1页
Swing组件的使用_第2页
Swing组件的使用_第3页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、(总结 )Swing 组件的使用Swing的组件与AWT组件相似, 但又为每一个组件增添了新的方法,并提供了更多的高级组件.Swing的基本组件:1. 按钮 (JButton):Swing中的按钮可以显示图像,并且可以将按钮设置为窗口的默认图标,而且还可以将多个图像指定给一个按钮。(1).JButton常用的构造方法。JButton(String text):按钮上显示字符。JButton(Icon icon):按钮上显示图标。JButton(String text, Icon icon):按钮上既显示图标又显示字符。(2). 常用方法 :b1.setEnabled(false);/使按钮当前

2、不可用b1.setToolTipText("."): /设置按钮提示文本b1.setMnemonic(KeyEvent.VK_D);/将 b1 邦定 alt+D 键(3). 案例代码 :java view plain copy print?public class JButtonExample3extends JPanel implements ActionListener protected JButton b1, b2, b3; JButtonExample3() publicImageIconleftButtonIcon = createImageIcon("

3、;right.gif");ImageIcon middleButtonIcon =createImageIcon("middle.gif");ImageIconrightButtonIcon = createImageIcon("left.gif");b1 = new JButton("失效中间按钮 (D)", leftButtonIcon);b1.setVerticalTextPosition(AbstractButton.CENTER);/水平中间对齐b1.setHorizontalTextPosition(Abstra

4、ctButton.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)

5、;/将 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("点击这个按钮,将使中间的按钮失效

6、!");b2.setToolTipText("点击这个按钮,没有任何的事件发生!");b3.setToolTipText("点击这个按钮,将使中间的按钮有效");/将按钮添加到JPanel 中add(b1);add(b2);add(b3);public voidactionPerformed(ActionEvent e) if("disable".equals(e.getActionCommand()b2.setEnabled(false);b1.setEnabled(false);b3.setEnabled(true);

7、elseb2.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); elseSystem.err.println("Couldn t find file: " +path);return null;publ

8、ic static void main(String args) /设置使用新的 swing 界面/提供一个关于新创建的JFrame是否应该具有当前外观为其提供的Window装饰(如边框、关闭窗口的小部件、标题等等)的提示。JFrame.setDefaultLookAndFeelDecorated(true);/ 创建一个窗体JFrame frame = new JFrame("小龙按钮 ");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 创建一个面板JButtonExample3 newContentPane

9、 = newJButtonExample3();newContentPane.setOpaque(true);frame.setContentPane(newContentPane);/ 显示窗体frame.pack();frame.setLocation(300, 200);frame.setVisible(true);运行截图 :(说明 :以下关于列表框内容部分出自此处 :点击打开链接 ,特此声明 !2. 组合框 (JComboBox):组合框 (下拉列表JComboBox) 使用方法及示例详解:构造方法 :* JComboBox()建立一个 JComboBox组件 .* JComboBo

10、x(ComboBoxModel model)根据 model 建立一个 JComboBox 组件 .* JComboBox(Objext items) 利用数组对象建立一个 JComboBox 组件 .* JComboBox(Vector items)利用 Vector 对象建立一个JComboBox组件 .常用方法 :.综合示例 :java view plain copy print?<span style="background-color: rgb(255, 255, 255);">importjava.awt.*; /*包含用于创建用户界

11、面和绘制图形图像的所有类。 */import javax.swing.*; /*提供一组 "轻量级 "组件,尽量让这些组件在所有平台上的工作方式都相同*/public class JComboBoxDemo extends JFramepublic JComboBoxDemo() /* Container 是所有容器的父类 ,又是 Java 语言的组件类Component的子类 . 容器是一种具有容纳其他组件和容器的功能的组件* 一个 Java 的图形用户界面的最基本元素是组件,组件是可以以图形化的方式显示在屏幕上并能与用户进行交互的对象,如一个按钮 ,一个文本框等 .*

12、在 Java 中,通常将组件放在一定的容器内使用this.getContentPane()方法返回此窗体的contentPane对象*/Container contentPane =this.getContentPane();/*创建一个面板对象,指定布局管理器为GridLayout,1行 2 列 .Jpanel的默认版面管理为FlowLayout */JPanel jPanel1 =new JPanel(new GridLayout(1, 2);/利用String数组建立JComboBoxString fruit = "苹果", "香蕉", "

13、;桔子", "梨", "芒果 " ;JComboBox jComboBox1 = new JComboBox(fruit);jComboBox1.addItem("其他 "); /在列表框选项的最后再添加一个 "其他 "选项/ 设置 jList1 对象的带标题边框jComboBox1.setBorder(BorderFactory.createTitledBorder("您最喜欢的水果:");/ 添加列表框jComboBox1至面板jPanel1.add(jComboBox1);/ 利

14、用 ComboBoxModel 建立 JComboBox ComboBoxModel myModel = new MyModel(); JComboBox jComboBox2 = new JComboBox(myModel);/ 设置 jList1 对象的带标题边框jComboBox2.setBorder(BorderFactory.createTitledBorder("您最喜欢的水果:");/ 添加列表框jComboBox2至面板jPanel1.add(jComboBox2);/ 添加面板至父容器contentPane.add(jPanel1);/ 设置本窗体的标题t

15、his.setTitle("JComboBoxDemo");/ 设置本窗体显示的初始大小this.setSize(350, 90);this.setLocation(300, 200);/ 设置本窗体初始可见this.setVisible(true);classMyModel extends DefaultComboBoxModelString fruit = "苹果 ", " 香蕉 ", " 桔子 ", " 梨 ", " 芒果" ;MyModel() for (int i

16、= 0;i < fruit.length; i+) /* addElement()方法用于向列表框添加选项元素*/this.addElement(fruiti);public static void main(String args)JComboBoxDemo test = newJComboBoxDemo();</span>截图 :3. 列表框(JList):列表框的功能与下拉列表框相似,也是让用户在几个条目中做出选择,但又有一些区别,它提供给用户的选择模式更为多样,分别是单一选择、连续选择、多项选择,对应于ListSelectionModel中的

17、3 个常量:(1) static int SINGLE_SELECTION只能选择一条。(2) static int SINGLE_INTERVAL_SELECTION按住Shift 键可选择联系的区间。(3) static int MULTIPLE_INTERVAL_SELECTION住Ctrl 键可选择多条。构造函数如下:(1) JList()建立一个JList组件。(2) JList(ListModel model)根据model建立一个按JList组件。(3) JList(Object items)利用数组对象建立一个JList组件。(4) JList(Vector items)利用V

18、ector对象建立一个JList组件。将列表框JList添加到JScrollPane中可以实现列表框的滚动.列表 (JList)组件使用示例1 如下:java view plain copy print?<span style="background-color: rgb(255, 255, 255);">publicclass JListDemo1 extends JFrameContainercontentPane;JPanel jp;JListjList1,jList2,jList3;publicJListDemo1()contentPan

19、e =this.getContentPane();jp = newJPanel(new GridLayout(1,3);/利用String数组建立JList对象String fruit="苹果 "," 香蕉","桔子","梨"," 芒果 "jList1=new JList(fruit);/设置jList1 对象的带标题边框jList1.setBorder(BorderFactory.createTitledBorder("您最喜欢的水果 : ");/设置 jList1 对象的

20、选择模式为单一选择jList1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);jp.add(jList1);/利用ListModel建立 JList 对象 ,可实现列表内容的动态ListModel myModel=new MyModel(); /创建一个列表模型对象jList2=new JList(myModel); /根据列表模型对象创建列表jList2.setBorder(BorderFactory.createTitledBorder("您最喜欢的水果 : ");/设置 jList2 对象的选择模式为按住C

21、trl 可多项选择jList2.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);jp.add(jList2);jList3=new JList(fruit);jList3.setBorder(BorderFactory.createTitledBorder("您最喜欢的水果 : ");jList3.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);jList3.setVisibleRowCount(3);jList

22、3.setFixedCellWidth(120);jList3.setFixedCellHeight(30);JScrollPanejScrollPane = new JScrollPane(jList3);jp.add(jScrollPane);contentPane.add(jp);this.setTitle("JListDemo");this.setSize(340,200);/pack();this.setLocation(400, 300);this.setVisible(true);/通过继承DefaultListModel类可实现动态内容的列表选择classM

23、yModel extendsDefaultListModelString fruit="苹果 ","香蕉 ","桔子 "," 梨"," 芒果 "MyModel()for(inti=0;i<fruit.length;i+)/* voidaddElement(Object obj)* 将指定组件添加到此类表的末尾。*/this.addElement(fruiti);public static void main(String args)test=new JListDemo1();JLi

24、stDemo1</span>运行结果如下图所示:列表框示例2代码:java view plain copy print?<span style="background-color: rgb(255, 255, 255);">publicclass JListDemo2 extends JFrame ContainercontentPane;JPanel jp;JList jListFont,jListSize;/构造函数public JListDemo2()contentPane = this.getContentPa

25、ne();jp = new JPanel(new GridLayout();setJListFont();setJListFontSize();contentPane.add(jp);this.setTitle("JListDemo");this.setSize(240,200);this.setLocation(400, 300);this.setVisible(true); / End of JListDemo2public void setJListFont()GraphicsEnvironment ge =GraphicsEnvironment.getLocalGr

26、aphicsEnvironment();final String fontName =ge.getAvailableFontFamilyNames(); /获取系统的本地字体jListFont = new JList(fontName);/ 设置 jList1 对象的带标题边框jListFont.setBorder(BorderFactory.createTitledBorder("系统字体 : ");/ 设置 jList1 对象的选择模式为单一选择jListFont.setSelectionMode(ListSelectionModel.SINGLE_SELECTION)

27、;jListFont.setVisibleRowCount(3);jListFont.setFixedCellWidth(120);jListFont.setFixedCellHeight(20);JScrollPanejScrollPane1 = new JScrollPane(jListFont);jp.add(jScrollPane1);public voidsetJListFontSize() final String fontSize = "8","9", "10", "12", "14&quo

28、t;, "15", "16","18","20", "21", "22", "24", "26", "28", "30", "36", "48","54", "72", "89" ;/创建字号的列表框listSizejListSize = new JList(fontSize);jListSize.

29、setBorder(BorderFactory.createTitledBorder("字体大小 : ");/ 设置 jList2 对象的选择模式为按住Ctrl 可多项选择jListSize.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);jListSize.setVisibleRowCount(3);jListSize.setFixedCellWidth(120);jListSize.setFixedCellHeight(20);JScrollPanejScrollPane2 = new J

30、ScrollPane(jListSize);jp.add(jScrollPane2);public static voidmain(String args) JListDemo2 test = newJListDemo2();</span>程序运行示意图:4.javax.swing类 JColorChooser:JColorChooser (颜色选择对话框)提供一个用于允许用户操作和选择颜色的控制器窗格。JColorChooser构造函数 :JColorChooser():建立一个 JColorChooer对象 ,默认颜色为白色 .JColorChooser(Col

31、or initialColor):建立一个JColorChooer对象 ,并设置初始颜色.JColorChooser(ColorSelectionModel modal):以ColorSelectionModel构造 JColorChooser对象 .最常使用 JColorChooser的方式是使用JColorChooser的静态方法showDialog(). 也就是说在大部份的情况下,我们不会 new 一个 JColorChooser对象 ,而是直接使用JColorChooser的静态方法 (showDialog()来输出颜色选择对话框 .利用这个方法我们亦可以得到用户所选择的颜色 ,若用户

32、没有选择则返回 null 值.颜色选择对话框的简单案例 1 代码 :java view plain copy print?<span style="background-color: rgb(255, 255, 255);">publicclass JColorChooserDemo public static void main(String args) JFrame frame = newJFrame("JColorChooserDemo");MyPanel panel = new MyPanel();frame.getC

33、ontentPane().add(panel);frame.pack();frame.setLocation(300, 200);frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); class MyPanel extends JPanelimplements ActionListener private static finallong serialVersionUID = 1L;private JButtonbutton,rgb,red,green,blue;private Color co

34、lor = newColor(255, 51, 150);public MyPanel()button = new JButton("Get Color");rgb = new JButton("RGB: ");red = newJButton("Red: ");green = new JButton("Green:");blue = new JButton("Blue: ");button.addActionListener(this);setPreferredSize(new Dimensi

35、on(550, 250);setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5);setBackground(color);add(button);add(rgb);add(red);add(green);add(blue);public voidactionPerformed(ActionEvent e) color =JColorChooser.showDialog(this, "Choose Color", color);if (color != null) setBackground(color);button.setTe

36、xt("Get again");rgb.setText("RGB: " + color.getRGB();red.setText("Red: " + color.getRed();green.setText("Green: " + color.getGreen();blue.setText("Blue: " +color.getBlue();</span>运行结果示意图如下 :另外还有一个使用JColorChooser常用的方式 ,那就是使用createDialog(

37、)静态方法 .使用这个静态方法后会得到一个JDialog 对象 ,我们可以利用这个JDialog 对象对颜色选择对话框做更多的设置 .不过利用这个方法必须配合 JColorChooser 对象才行 ,也就是必须 new 出一个 JColorChooser对象来 .下面范例介绍最简单的也是最实用 JColorChooser,选择颜色完毕后就能更改JLabel 上的背景颜色 .颜色选择对话框的简单案例2 代码 :java viewplain copy print?<span style="background-color: rgb(255,255, 255);"&

38、amp;gt;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class ColorChooserDemo1extends MouseAdapter JFrame f = null;JLabel label = null;JLabel label1 = null;JLabel label2 = null;Rectangle rec1 = null;Rectangle rec2 = null;publicColorChooserDemo1() f = newJFrame("ColorChoose

39、r Example");ContainercontentPane = f.getContentPane();contentPane.addMouseListener(this);label =new JLabel(" ", JLabel.CENTER);label.setPreferredSize(new Dimension(300, 20);JPanel panel = new JPanel();panel.setLayout(new GridLayout(1, 2);label1= new JLabel(" 左 Label", JLabel

40、.CENTER); label1.setBackground(Color.red);label1.setForeground(Color.black);label1.setOpaque(true);label1.setBounds(0, 0,150, 150);panel.add(label1);label2 = new JLabel(" 右 Label", JLabel.CENTER);label2.setBackground(Color.green);label2.setForeground(Color.black);label2.setOpaque(true);label2.se

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论