①事件源和监听
这是程序运行的结果:(一个硕大的按钮占据了整个屏幕)
JTextField
以下是运行结果,点哪个选项就在控制台输出哪个:
举例,窗口里有一个按钮Button,按下这个Button,就能在窗口某个地方显示出一个图片。
此例中:
事件源是Button
监听是一段程序,一旦Button的状态被改变比如click ,这段程序就能接收到一个事件event并对窗口进行相应的操作
所以几乎事件源都要添加一个相应的监听程序:
下面是一个很简单的JAVA GUI的代码:
//click之前 //click 之后
在上面的go()方法里加入下面两行的代码,能让Button里面的字体变大:
Font bigFont=new Font(Font.SANS_SERIF,Font.BOLD,34);//里面的参数依次是字体,样式,字号(前面两个随便选的)
button.setFont(bigFont);
字体变大之后的运行结果:
②多个事件源 多个监听
创建多个监听类ButtonListener ListListener...
button.add(new ButtonListener());
list.add(new ListListener());
③其他swing组件
JFrame
JFrame frame=new JFrame("frameName");//整个框架
frame.getContentPane().add(button);//在框架的主面板上添加swing组件
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
frame.setVisible(true);
//这三个设置frame的属性,基本都要写
要设置JFrame不可改变大小:frame.setResizable(false);
JButton
JButton button = new JButton("button");
button.setText("new button");//更换 button上的文字
button.setSize(30, 30);//这个效果没试出来,待定
事件处理函数就是actionPeformed(ActionEvent ae){}(类要implements ActionListener)
JPanel
JPanel panel=new JPanel();
panel.add(button);
panel.add(new JPanel);//panel可叠加
如果想在panel上绘制或添加图片:
http://blog.163.com/it_novice/blog/static/20918306920133128328829/
JTextField field=new JTextField(20);//构造函数要求输入长度
field.setText("field");
field.selectAll();选取文本字段的内容
field.requestFocus();//置光标于field
JTextArea
JTextArea textArea=newJTextArea(10,20);//构造函数要求设定 行高 和 每行的宽度
textArea.setText("textarea");
textArea.append("lalala");//在末尾添加
textArea.setLineWrap(true) ;//启动自动换行
JScrollPane(带有滚动条的面板,一般和JTextArea或者JList一起用)
JScrollPane scroller=new JScrollPane(textArea);
scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);//设置总是有垂直滚动条
scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);//设置没有水平滚动条
panel.add(scroller);
JCheckBox
JCheckBox check=new JCheckBox("CheckBox");
check.setSelected(true);
JCheckBox的事件处理函数:(类要implements ItemEventListener)
public void itemStateChanged(ItemEvent ev){}
JList
String[ ] element={"xiaojing","xinyi","songsong","aying"};
JList list=new JList(element);
JScroller scroller=new JScroller(list);
list.setVisibleRowCount(3);//设定显示的行数
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.getSelectedValue();//获取已经被选中的值
JList事件处理函数:(要写一个内部类implements ListSelectionListener)