一切都从window开始:
JFrame是一个代表屏幕上window的对象。你可以把button、checkbox、text字段等接口放在window上面。标准的menu也可以放在上面,并且能够带最小化、最大化、关闭等图标。JFrame的长相会根据所处的平台不同而有所区别。
将组建加到window上:
一旦创建出JFrame后,你就可以把组件(widget)加到上面。有很多的swing可以使用,它们在javax.swing这个包之中。最常用的组件包括:JButton、JRadioButton、JCheckBox、JLabel、JList、JScrollPane、JSlider、JTextArea、JTextField和JTable等。大部分都是很容易使用的,但是像JTable就有一点小复杂了。
创建一个GUI的app需要4个步骤:
1.创建frame;
2.创建widget;
3.将widget加入到frame;
4.显示出来。
见以下的demo:
import javax.swing.JButton;
import javax.swing.JFrame;
public class GUIDemo01 {
public static void main(String[] args) {
// 1.创建Frame
JFrame frame = new JFrame();
// 2.创建widget
JButton button = new JButton("有种就点击我!");
// 3.把widget添加到frame上
/*组件不会直接加到frame上,你可以把frame想象成window的框,
* 组件是加到window的pane上面
*/
frame.getContentPane().add(button);
// 4.显示出来
frame.setSize(300, 300);
frame.setVisible(true);
}
}
以上程序的效果:
如果在上述程序中加入这样的代码:
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
则无论用户怎么点击(除非用taskmgr强制关闭,否则怎么关闭都关不掉,我想有些流氓软件大致就是采用的这种思路吧)。
如果你想要实现用户点击按钮的时候,按钮中的文字改变 ,就需要实现一个监听器:
如果想要知道按钮的事件,就会监听事件的接口
监听接口是介于监听(你)与事件源(按钮)之间的桥梁。swing的GUI组件是事件源。以java术语来说:事件源是可以将用户的操作装换成事件的对象。对java而言,事件几乎都是以对象类表示。它会是某种事件类的对象。如果你查询API中的java.awt.evet这个包,你就会看到一组事件的类(名称中有Event)。你会看到MouseEvent、KeyEvent、WindowEvent、ActionEvent等等。
事件源(例如:按钮)会在用户做出相关动作的时候(按下按钮)产生事件对象。你的程序在大多数情况下是事件的接收方而不是创建方。也就是说:你会花较多的时间当监听者而不是时间的来源。
每个事件类型都有相应的监听者接口。要想接收MouseEvent的话就要实现MouseListener接口。想要WindowEvent么?实现WindowListener。
监听:
如果类想要知道按钮的ActionEvent,就得实现ActionListener这个接口。按钮需要知道你关注的部分,因此要通过调用addActio