Java中GUI—Swing组件

几乎全部的咱们在javaGUI中用到的全部的组件(组件是几乎全部的GUI中东西的统称)都继承自java.awt.Component类;几乎全部的具备容器性质的组件都继承自java.awt.Container类,并且这些组件中通常还会含有这样的成员对象,什么样的成员对象呢?——Container类或继承自Container类的对象java

为了可以将GUI掌握,咱们会将几乎全部的组件加以介绍,主要是将这些组件的基本功能加以介绍,这样在遇到实际问题时,可以知道用什么组件进行解决,至于每一个组件具体的方法固然就不能彻底列出来了,能够查阅官方文档加以了解windows

1、首先要了解java中事件的处理模型——委托事件模型数组

其中主要的就是说:当一个具体的组件产生一个事件时,这个组件就会将产生的事件对象传递给监听这个组件的事件监听对象——称之为这个组件的事件监听器,有对象来处理这个事件;框架

2、接下来咱们就开始介绍这些组件(是否将《雍俊海》的P243中的——总体介绍写到这个部分的开始)less

《》JFrame框架(顶层容器)——javax.swing.JFrameide

(1)这个框架主要是用于建立java应用程序窗口的一个顶层容器布局

(2)构造方法3d

public JFrame() throws HeadlessException对象

public JFrame(String title) throws HeadlessExceptionblog

建立一个视觉上不可见的初始框架(在执行时只会出现一个空的windows窗口);String title 能够指定建立的窗口的标题;

须要注意的是,通常咱们并非直接用JFrame来建立一个窗口对象,而是建立一个继承JFrame的子类,由于这样咱们不只可以使用JFrame中的方法,同时还可以拥有本身的方法,这样就可以更好的使用这个框架了

(3)JFrame中有一个专门用于关闭窗口的方法

public void setDefaultCloseOperation( int opration)

opration通常设为JFrame中的常量JFrame.EXIT_ON_CLOSE ;

只要在代码中调用了这个方法,那么在点击窗口上的关闭按钮时就可以将程序正常的关闭,(虽然不写入这个方法,也可以关闭窗口,可是有时是不可以将程序关闭的,即窗口不见了,可是程序还在运行)

(4)public void setSize(int ,int) //设置窗口的大小

     public void setVisible(boolean)//设置窗口是否可见

(5)接下来咱们就可以在JFrame的子类中添加各类组件了,在添加组件以前咱们须要为他设置一种布局管理器,方法有两种

一种是直接使用JFrame中的成员方法:

public void setLayout(LayoutManager mgr)

可是实际中咱们最经常使用的方法是:

好比咱们应经建立了一个继承了JFrame 的子类对象—MyFrame

则Container coner = myFrame.getContentPane() ;

   coner.setLayout(new FlowLayout());

这是由于在JFrame中含有一个继承自Container容器的成员域,经过使用getContentPane方法就可以返回这个成员域,因为在Container类中也有setLayout()方法,因此这样做也是有道理的,这两个方法分别为:

public Container getContentPane() ;

public void setLayout(LayoutManager mgr) ;

有必要说明的是在JFrame框架中,默认的布局管理器是BorderLayout管理器

(6)public Component add(Component comp) ;

这个方法是用来在窗口中添加组件的,很是的经常使用

《》JLabel标签(控件)

(1)标签实际上也是一种容器,它也继承了java.awt.container类,在java中它属于一种叫作“不可编辑的信息组件”,在标签中咱们能够向其中添加文字和图片,可是咱们是可以更改这些文字和图片的,“不可编辑性”体如今他不能像文本编辑框那样“实时更新”

 

(2)构造方法

public JLabel(String text ) ;

public JLabel(Icon icon) ;

public JLabel(String text , Icon icon,int horizon);

text——指定文本文字

icon——指定添加的图片

horizon——指定文字和图片在水平方向上的对齐方式

注意:①Icon类型是一个有关图像的接口,ImageIcon是他的一个子类,因此咱们能够将icon指定为一个ImageIcon的实例对象

经过public ImageIcon(String filename) ;等构造方法就可以方便的建立出ImageIcon 对象了,其中的filename表明指定的图片文件名;

②另一点是:在JLabel类中有不少用于设定添加到标签中的文字和图片的对齐方式的成员方法,咱们就不在介绍了,能够查阅官方文档,在这些方法方法中,经常须要用JLabel中 的静态常量来指定方式:JLabel.LEFT/JLabel.RIGHT/JLabel.CENTER等等,能够查阅官方文档

(3)public void setText(String text) //设置标签中的文字内容

pubic void setIcon(Icon icon)//设置标签中的图片

 

 

 

(4)public void setToolTipText(String text)

这个方法很是的有用,当咱们在调用了这个方法后,就可以出现这样的效果——当鼠标在标签上稍加停留时,就会在标签上出现

String text指定的文字信息

《》JDialog和JOptionPane对话框(顶级容器)

对话框就是某个窗口的子窗口,首先介绍JDialog类

(1)构造方法

public JDialog(Dialoge ower,String title,boolean modal);

public JDialog(Frame ower,String title,boolean modal) ;

ower——指定当前窗口的父窗口

title——指定当前窗口的标题

modal——指定当前窗口的模式

说明:所谓的对话框模式就是当前窗口和父窗口的激活状态,

当modal为true时,那么对话窗口为有模式状态,即当调出子窗口后,父窗口是处于非激活状态的,反之,当modal为false时,对话窗口处于无模式状态,子窗口和父窗口同时处于激活状态,当关闭父窗口时,子窗口也一并被关闭;

(2)和JFrame同样 JDialog也有设置属性的方法,如setSize()

,getContentPane(),setLayout()等等方法;当咱们调用setVisible()方法时,能够显示对话窗口

(3)public Component add(Component comp);

 

接下来介绍JOptionPane类,经过调用这个类中的一些静态方法,就可以建立一些现成的模式对话框,这些模式对话框很是的简单,当咱们须要建立一些很是简单的对话框时,能够直接使用这些方法来建立,因此通常不是经过继承这个类,以后来建立对话框;

——消息对话框

(1)public static void showMessageDialog

(Component  parentCompoent,Object message)throws………..

(2)public static void showMessageDialog

(Component  parentCompoent,Object message ,

String title, int messageType)throws………..

(3)public static void showMessageDialog

(Component  parentCompoent,Object message ,

String title, int messageType , Icon icon)throws………..

parentComponent——指定父窗口

message——指定显示的内容

title——指定标题

massageType——指定对话框显示的消息类型

icon——指定对话框中的消息类型的图标

说明:所谓的消息类型指的是,在消息对话框中有很都类型,好比说错误消息类型的消息对话框(JOptionPane.ERROR_MESSAGE)

信息类型的消息对话框(JOptionPane.INFORMATION_MESSAGE)

警告消息类型的消息对话框(JOptionPane.WARNING_MESSAGE)

疑问类型的消息对话框

(JOptionPane.QUESTION_MESSAGE)

简单消息类型的消息对话框

(JOptionPane.PLAIN_MESSAGE)

不一样消息类型的消息对话框在外型上基本同样,只是会采用不一样的图标来表示不一样的消息类型

——确认对话框

public static int showConfirmDialog

(Component parentComponent,Object message

String title ,int optionType,int messageType,

Icon icon)throws…….

这参数最全的一个确认对话框的静态方法,至于其余的部分参数的方法,查阅官方文档就好了

parentComponent、message、title、messageType、icon参数和上面的方法彻底同样

optionType——对话框的选项模式

因为确认对话框中会有像“肯定”“取消”“是否”等按钮,这些按钮的不一样组合就构成了,对话框的选项模式,参数有静态常量指定:

JOptionPane.TES_NO_OPTION //只含有“是”“否”选项

JOptionPane.TES_NO_CANCEL_OPTION//还含有取消选项

上面的方法会根据所点击的选项的不一样,返回不一样的整型值

-1——当直接关闭对话框而不作任何选择时

0——单击“是”

1——单击“否”

2——单击“取消”

——文本输入对话框

public static String showInputDialog

(Component parentComponent ,Object message,

String title,int messageType)throws………

这也是参数最全的一个方法,参数的意思和上面的同样,只是会返回在输入框中输入的字符串

——选择输入对话框

public static Object showInputDialog

(Component parentComponent ,Object message,

String title,int messageType,Icon icon,

Object[] selectionValuse,Object initialSelectionValue)throws………

Object[] selectionValues——通常是String型的字符数组,用来指定候选的字符数组选项;

Object initialSelectionValue——指定框中的初始字符串

该方法会返回选定的字符串,固然,若是直接”取消”,则返回null

《》JTextField和JPasswordField文本编辑框(控件)

——JTextField

(1)构造方法

public JTextField()

public JTextField(String text) ;

public JTextField(int columns);

public JtextField(String text , int columns) ;

text——指定初始文本

columns——指定文本编辑框的长度

——JPasswordField

(1)构造方法

public JPasswrodField()

public JPasswrodField(String text)

public JPasswrodField(int columns)

public JPasswrodField(String ,int columns)

参数意义同样,只不过在文本框中是以密码的形式展示的“*********”

应该还可以指定密文显示字符的类型,能够查阅官方文档

两个类中都有

public String getText()

public void setText()

public void setEditable(boolean)

//用于指定文本框是否可编辑

还有一个有用的成员方法:

public boolean requestFocusInWindow()

当当前的文本框调用这个方法后,光标就会自动的回到当前的对话框中,有些软件中会有这样的效果,好比QQ中,当咱们在输入框汇中输入一段话后,按下回车,这时光标立刻又从上面的显示框中回到了输入框中,对于用户来讲很是的方便

《》JButton命令式按钮/

JCheckBox复选框/

JRadioButton单选按钮/

首先咱们先将“按钮系统的继承关系图”展现以下:

——JButton

构造方法:

public JButton() ;

public JButton(Icon icon)

public JButton(String text) ;

public JButton(String text,Icon icon) ;

//实际上JButton也是一个容器,能够容纳图片和文字

——JCheckBox

构造方法

public JCheckBox();

public JCheckBox(Icon icon);

public JCheckBox(Icon icon,boolean selected);

public JCheckBox(String text);

public JCheckBox(String text,boolean);

public JCheckBox(String text,Icon icon,boolean selected);

——JRadioButton

构造方法:

public JRadioButton(String text,Icon icon,

boolean selected) ;

//这是参数最全的一个方法

——三个类的共有方法

public void setSelected(boolean ) ;

public boolean inSelected() ;

此外须要注意的是,像单选按钮JRadioButton这样的一组按钮,大都是选中一个,其余的所有自动反选,那么这就须要将一组单选按钮联动起来,这要经过一个类——ButtonGroup类来实现,方法以下:

 

 

JRadioButton bt1 = new JRadioButton();

JRadioButton bt2 = new JRadioButton();

JRadioButton bt3 = new JRadioButton();

ButtonGroup rg = new ButtonGroup() ;

rg.add(bt1); rg.add(bt2); rg.add(bt3);

这样一来这三个按钮就可以造成一种联动

ButtonGroup类的两个方法为:

public ButtonGroup() ;  //构造方法

public void add(AbstractButton b) ;//将按钮添加到这个按钮组中,造成联动

《》JComboBox下拉式选择框/

JList列表框/

JTextArea文本区域框/

JScrollPane滚动窗格/

——JComboBox

(1)构造方法:

public JComboBox(Object [ ] item);

//通常使用String型的对象做为选项

(2)public void setEditable(boolean )

设置当前的下拉框中是否能够自行输入文本信息;

若是设为false,那么就只可以在下拉框中选择,而不可以自行输入内容;

(3)public void setMaximumRowCount(int count)

设置下拉框中可以显示的最大行数,若是选项数多于count的话,下拉式列表中就会自行显示滚动条

(4)public void setSelectedIndex(int anIndex);

经过选项的所在位置数,设置被选中的选项

(5)public void setSelectedItem(Object anObject);

经过选项对象,设置被选中的选项

(6)public int getSelectedIndex();

      public Object getSelectedIntdex() ;

——JList列表框

(1)构造方法

public JList(Object[ ]listData)

//参数指定列表框中的全部的选项

(2)public setSelectionMode(int selecttionMode)

//设定列表框的选择模式,参数指定了所用的模式:

ListSelectionModel.SINGLE_INTERVAL_SELECTION

//指定的常量表明,只可以在列表框中选中其中一项或者一些连续的项

ListSelectionModel.MULTIPLE_INTERVAL_SELECTION

指定的常量表明能够在选项框中选择若干非连续项

(3)public void setSelectedIndex( int index)

public void setSelectedIndices( int[ ] indices)

//选定数组指定的全部项

public void setSelectedInterval(int anchor,int lead)

//将下标从anchor到lead之间的全部选项所有选中

(4)public int getSelectedIndex()

public int[ ] getSelectedIndices()

public Object getSelectedValue()

public Object [ ] getSelectedValues()

——JTextArea文本区域框

实际上文本区域框就是用来在窗口中显示文字的一个控件,单独所谓建立一个文本区域框是非的简单的,因为文字的内容可能很是的多,因此咱们就想要有一个滑动条来解决问题;因此一般咱们将JTextArea和JScrollPane(滚动窗格)配合使用,接下来就分别介绍这两种控件

(1)文本区域框的构造方法

public JTextArea(String text , int rows , int colums);

rows和colums分别指定行数和列数,text指定显示的文本

(2)JScrollPane(滚动窗格)的构造方:

public JScrollPane(Component view) ;

可见咱们不只可以将一个文本区域框放入到滚动窗格中,还可以将其余的Component型的对象放到其中

例如:

JFrame myFrame = new JFrame();

JTextArea myArea = new (“You are right”,20,10) ;

JScrollPane myPane = new JScrollPane(myArea) ;

myFrame.add(myPane) ;

这样就可以将带有滚动窗格的文本框显示到框架中了

在JTextArea成员方法中有这样一个方法:

public void setCaretPosition(int position) ;

效果是,将光标置于JTextArea文本框中由position指定的位置;

当position=0时,光标指到全部文字的最前面

当position为当前文本框中的字符总数时,光标指到全部文字的最后面;

将这在和JScrollPane配合使用时很是的有用,好比QQ中当咱们输入一段话后,按下回车,这段话将显示在上面的显示框中,这时咱们调用这个方法,使光标被指到文字最后,就可以自动的将滚动条滚动到当前咱们刚刚输入的文字处,让用户感到很是的方便

(3)其余的方法咱们就不在多讲,查阅官方文档

《》JSlider(滑动条)和JPanel(普通面板)

——JSlider

(1)构造方法

public JSlider( int min, int max,int value);

public JSlider(int orientation,int min,int max,int value) ;

其中min和max 用来设定滑动条的最大值和最小值,value用来指定当前的滑动条的滑动位置,参数orientation指定滑动条的摆放的方向,有一些静态常量来指定:

JSlider.HORIZONTAL//水平方向放置

JSlider.VERTICAL//竖直方向放置

(2)public void setValue(int n);

     public int getValue() ;

——JPanel

(1)public JPanel()

(2)public void setPreferredSize(Dimension preferredSize)

这个方法是用来设定建立的面板的大小的,其中的Dimension类是专门用来建立一种表明大小的对象的,这一点很是的有趣,在java的GUI中,有很是多的类是专门用来建立平时很是常见的数据对儿的,如:尺寸对象(Dimension),点对象(Point),图片对象(ImageIcon)等等;

Dimension类的构造方法:

pubic Dimension(int width , int height);

(3)public void setBackground(Color bg) ;

//设置面板的背景颜色,须要注意的是除了能够本身建立Color的对象以外,在Color中还有许多的静态的常量Color对象,这些对象是系统已经设置好的颜色对象,如Color.GREEN就是绿色

相关文章
相关标签/搜索