java窗⼝程序实例_笔记之_java窗体程序整理
javaswing的动态增加控件:class dynmaicBtnListener implementsjava.awt.event.ActionListener{
@Overridepublic voidactionPerformed(ActionEvent e) {
System.out.println("new button clicked.");
}
}private voidjButton2ActionPerformed(java.awt.event.ActionEvent evt) {
CenterViewPanel.setLayout(newBoxLayout(CenterViewPanel, BoxLayout.Y_AXIS));
JButton newbtn= new JButton("MyDynamicButton");
newbtn.addActionListener(newdynmaicBtnListener ());
CenterViewPanel.add(newbtn);//CenterViewPanel.validate();//paint();
}
在动态增加控件的时候,必须在add之前调⽤layout设置⽅法。不然没有效果。
CenterViewPanel.setLayout(newBoxLayout(CenterViewPanel, BoxLayout.Y_AXIS));
在add之后要调⽤
CenterViewPanel.validate();
或
去刷新重绘控件。
javaswing的控件属性:
了解各种⽤户界⾯组件:
JButton、JLabel、JTextField、JTextArea、JComboBox、 Jlist、JCheckBox、JRadioButton、JMenuBar、JMenu、JMenuItem、JCheckBoxMenuItem、JRadioButtonMenuItem、JScrollBar、JScrollPane、JTabbedPane等
⼀、JButton
按钮是⼀种点击时触发⾏为事件的组件。
按钮的四个构造⽅法:publicJbutton()创建⼀个空按钮publicJButton(String text) 创建⼀个标有指定⽂字的按钮publicJButton(Icon icon) 创建⼀个标有指定图标的按钮publicJButton(String text,Icon icon) 创建⼀个标有指定⽂字和图标的按钮
图标:是⼀个固定⼤⼩的图⽚,典型的图标体形较⼩,⽤于装饰组件。利⽤类ImageIcon可以从图像⽂件中得到图标,如:Icon icon=newImageIcon(“photo.gif”);
JButton 的属性
text:按钮上的标签,例如可⽤jbt.setText(“OK”)给按钮jbt设置标签。
icon:按钮上的图标,例如可⽤jbt.setTextIcon(newImageIcon(“a.gif”))。
mnemonic:指定热键。同时按下ALT键和指定热键相当于按下该按钮。例如使⽤jbt.setMnemonic(‘O’)可将O设置为按钮jbt的热键。
horizontalAlignment:此属性只有三个值SwingConstants.LEFT,SwingConstants.CENTER, SwingConstants.RIGHT。它指定按钮上标签的⽔平对齐⽅式。默认值为居中。
verticalAlignment:此属性也取三个值SwingConstants.TOP, SwingConstants.CENTER和SwingConstants.BOTTOM。它指定按钮上标签的垂直对齐⽅式。默认值为居中。
horizontalTextPosition:此属性有三个值SwingConstants.LEFT, SwingConstants.CENTER, SwingConstants.RIGHT。它指定⽂本相对于图标的⽔平位置,默认为SwingConstants.RIGHT。对应⽅法setHorizontalTextPosition。
verticalTextPosition:此属性有三个值SwingConstants.TOP, SwingConstants.CENTER, SwingConstants.BOTTOM。它指定⽂字相对图标的垂直位置,默认值为SwingConstants.CENTER。对应⽅法setVerticalTextPosition。
⼆、JLabel
标签是显⽰⼀⼩段⽂字、⼀幅图⽚或者⼆者皆有的区域。
它的六个构造⽅法如下:publicJLabel() 创建⼀个空标签。public JLabel(String text,inthorizontalAlignment) 创建⼀个指定内容字符串和⽔平对齐⽅式的标签。其中⽔平对齐⽅式可取值SwingConstants.LEFT, SwingConstants.CENTER, SwingConstants.RIGHT。publicJLabel(String text) 创建⼀个指定⽂字的标签。publicJLabel(Icon icon) 创建⼀个指定图标的标签。public JLabel(Icon
icon,inthorizontalAlignment) 创建⼀个指定图标和⽔平对齐⽅式的标签。public JLabel(String text,Icon
icon,inthorizontalAlignment) 创建⼀个指定⽂本、图标和⽔平对齐⽅式的标签。
例如,下⾯语句创建⼀个⽂本内容为“Interest Rate”的标签:
JLabel myLabel= newJLabel(“Interest Rate”);
下⾯的语句创建⼀个标签,它使⽤⽂件“images/map.gif”中的图像作图标:
JLabel mapLabel= new JLabel(new ImageIcon(“images/map.gif”);
JLabel 的属性
JLabel继承了类Jcomponent的所有属性,并具有JButton类的许多属性,如:
text
icon
horizontalAlignment
verticalAlignment
三、JTextField
⽂本域是⼀个⽤户可以输⼊字符的输⼊区。允许⽤户输⼊各种数据,如姓名和描述⽂字。
JTextField的四个构造⽅法:publicJTextField() 创建⼀个空⽂本域。public JTextField(intcolumns) 创建⼀个指定列数的空⽂本域。publicJTextField(String text) ⽤指定初始⽂字创建⼀个⽂本域。public JTextField(String text,intcolumns) 创建⼀个⽂本域,并⽤指定⽂字和列数初始化。
JTextField 属性
除了text、horizontalAlignment等属性外,JTextField还有如下属性:
editable 布尔型属性,表明⽤户能否修改⽂本域。
columns ⽂本域的宽度。
JTextField ⽅法
getText() 从⽂本域返回字符串。
setText(String text) 将给定字符串写⼊⽂本域当中
setEditable(booleaneditable) 使⽂本域变为可编辑的,默认为true。
setColumns(int) 设置⽂本与的列数,⽂本域的长度可变。
javaswing酷炫界面四、JTextArea
如想让⽤户输⼊多⾏⽂本,只能通过创建多个JTextField实例来实现,解决问题的更好办法是使⽤JTextField,它允许⽤户输⼊多⾏⽂字。
JTextArea的三个构造⽅法:publicJTextArea() 创建⼀个空的⽂本区。
JTextArea(int rows, intcolumns) 创建⼀个指定⾏数和列数的⽂本区。
JTextArea(String s,int rows, intcolumns) 创建⼀个指定⽂本、⾏数和列数的⽂本区。
JTextArea 属性
除了text、editable、columns外,JTextArea还有以下属性:
lineWrap
wrapStyleWord
rows
lineCount
tabSize
JTextArea 的⽅法
以下⽅法⽤于插⼊、追加和替换⽂本:public void inser(String s,intpos) 将字符串s插⼊到⽂本区的指定位置pos。public
voidappend(String s) 将字符串s添加到⽂本的末尾。public void replaceRange(String s,int start,intend) ⽤字符串s替换⽂本中从位置start到end的⽂字。
五、JComboBox
组和框是⼀些项⽬的简单列表,⽤户能够从中进⾏选择。
JComboBox的两个构造⽅法:publicJComboBox()默认构造⽅法。publicJComboBox(Object[] stringItems) 带有字符串列表的构造⽅法,其中stringItems是⼀个字符串数祖。
JComboBox的属性
JComboBox的有⽤的属性:
selectedIndex int值,表⽰组合框中选定项的序号。
selectedItem Object类型,表⽰选定项。
JComboBox 的⽅法
有⽤的⽅法:public voidaddItem(Object item)在组和框中添加⼀个选项,它可以是任何对象。public Object getItemAt(intindex) 得到组合框中指定序号的项。public voidremoveItem(Object anObject)删除指定的项。public voidremoveAllItems() 删除列表中所有项。
六、JList
列表框的作⽤和组合框的作⽤基本相同,但它允许⽤户同时选择多项。
JList的两个构造⽅法:
JList()
创建⼀个空的列表框
JList(Object[] stringItems)
创建⼀个有初始项的列表框
JList不会⾃动滚动。给列表框加滚动条的⽅法与⽂本区相同,只需创建⼀个滚动窗格并将列表框加⼊其中即可。
Jlist的 属性
selectedIndexd
selectedIndices
selectedValue
selectedValues
selectionMode
visibleRowCount
七、JCheckBox
复选框是⼀种⽤户能够打开、关闭选项的组件,如同电灯开关⼀般。
JCheckBox的七个构造⽅法:
JCheckBox()
JCheckBox(String text)
JCheckBox(String text,booleanselected)
JCheckBox(Icon icon)
JCheckBox(Icon icon,booleanselected)
JCheckBox(String text, Icon icon)
JCheckBox(String text, Icon icon,booleanselected)
JCheckBox 的属性
JCheckBox 除了具有JButton的所有属性如text、icon、mnemonic、verticalAlignment、horizontalAlignment、horizontalTextPosition和verticalTextPosition 外,还有selected属性,该属性指明复选框是否被选中。
⼋、JRadioButton
单选按钮,或叫选择按钮,让⽤户从⼀组组件中选择唯⼀的⼀个选项。
JRadioButton的七个构造⽅法:
JRadioButton()
JRadioButton(String text)
JRadioButton(String text,booleanselected)
JRadioButton(Icon icon)
JRadioButton(Icon icon,booleanselected)
JRadioButton(String text, Icon icon)
JRadioButton(String text, Icon icon,booleanselected)
JRadioButton 的属性
JRadioButton 除具有JButton的所有属性如text、icon、mnemonic、verticalAlignment、 horizontalAlignment、horizontalTextPosition、verticalTextPosition外,还具有 selected属性,该属性指明单选按钮是否被选中。
将单选钮组合成组
单选按钮可以象按钮⼀样添加到容器中。要将单选按钮分组,需要创建java.swing.ButtonGroup的⼀个实例,并⽤add⽅法把单选按钮添加到该实例中,如:
ButtonGroup btg= newButtonGroup();
btg.add(jrb1);
btg.add(jrb2);
上述代码创建了⼀个单选按钮组,这样就不能同时选择jrb1和jrb2。
九、消息对话框
对话框通常⽤作临时窗⼝,⽤来接受⽤户的附加信息或提⽰⽤户发⽣了某事件。
消息对话框是⼀种简单却频繁使⽤的对话框,⽤来显⽰消息提醒⽤户。
消息对话框是模式的,即消息对话框消失前其他窗⼝均不可⽤。
创建消息对话框
使⽤ JOptionPane类中的静态⽅法:
showMessageDialog(Component parentComponent, Object message, String title,intmessageType)
parentComponet是对话框的⽗组件,对话框都是由它派⽣⽽来的。message是要显⽰的对象,它通常是⼀个字符串。title是对话框的标题。messageType决定了所显⽰消息的类型。
showMessageDialog(Component parentComponent, Object message, String title,intmessageType, Icon icon)
除PLAIN_MESSAGE外,每种消息都有相应的图标,以上⽅法可⽀持⾃制图标。
javaswing的注册事件:
Swing 是⽬前Java中不可缺少的窗⼝⼯具组,是建⽴图形化⽤户界⾯(GUI)程序的强⼤⼯具。Java Swing组件⾃动产⽣各种事件来响应⽤户⾏为。Java将事件封装成事件类,并且为每个事件类定义了⼀个事件。⼀个组件注册事件⽅法,表明该组件要响应指定事件。也就是说我们可以通过注册,监听事件源产⽣的事件,从⽽在事件处理程序中处理我们所需要处理的⽤户⾏为。
Java Swing中处理各组件事件的⼀般步骤是:1. 新建⼀个组件。2. 将该组件添加到相应的⾯板。3. 注册以监听事件源产⽣的事件4. 定义处理事件的⽅法。
注册事件我们⼀般采⽤两种⽅式:⼀是:利⽤⼀个以及多个if语句来决定是哪个组件产⽣的事件;⼆是使⽤多个内部类来响应不同组件产⽣的各种事件,它⼜分两种⽅式,⼀种是采⽤匿名内部类,
⼀种是采⽤⼀般内部类。
下⾯我们采⽤以上三种⽅式来注册事件。来说明以上三种⽅式是如何实现事件的处理⽅法。
⼀、采⽤⼀个多个if语句来实现
在这种⽅式下:我们要继承ActionListener接⼝,并且要实现actionPerformed⽅法。通过getActionCommand()⽅法来获取事件的事件源。
[java] view plain copypublic class Test_01 extends JFrame implementsActionListener {
Test_01() {
JPanel panel= newJPanel();
JButton button1= new JButton("按钮⼀");
JButton button2= new JButton("按钮⼆");
panel.add(button1);
panel.add(button2);ContentPane().add(panel);this.setVisible(true);
button1.addActionListener(this);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论