最近正在学习java,照着书上的实例编写了一些代码,还是有一些地方不是很清楚,在网上查一查资料,在这里做一下总结。
1.新建一个窗体类,要继承于JFrame类,则需要加上一个名为serialVersionUID,类型为long的变量。它的作用是来验证版本一致性的,是一个序列化机制,JVM会把传来的字节流中的serialVersionUID与本地相应实体的UID比较,如果相同就认为是一致的,可以进行反序列化。
UID有两种显示的生成方式:1、默认的1L 2、根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段。
2.在main函数内,要直接加入这一段代码:
try{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
}catch(Throwable e){
e.printStackTrace();
}
这是用于美化java窗体的,是将默认使用的Swing界面外观换成Nimbus界面外观。加上这段代码,生成的窗口会比较好看。
3.main函数内还要加上这一段代码:
EventQueue.invokeLater(new Runnable(){
public void run(){
try{
//下面两句是新建一个窗体类
DictionaryDemo frame = new DictionaryDemo();
frame.setVisible(true);
}catch(Exception e){
e.printStackTrace();
}
}
});
这段代码的作用是把这个事件添加到awt的事件处理线程中。awt的事件处理线程会按照队列的顺序依次调用每个待处理的事件来运行。
使用该方法的原因是:awt是单线程模式的,所有awt的组件只能在(推荐方式)事件处理线程中访问,从而保证组件状态的可确定性。
注意:该方式是避免java的单线程死锁的。但是小的程序是很难死锁的,大的应用程序才会出现死锁。但是小程序里还是加上这段代码吧,养成一个好的习惯。
4.main方法只有上面两块,接下来要写的是类的构造方法。
其中添加panel、text之类没什么可说的,但是如果要添加button并且还会产生一些数据上的操作或者调用,就需要加上一个事件监听机制了。
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
//监听事件触发时调用的方法,方法名根据自己写的为准
do_button_actionPerformed(e);
}
});
5.还有比较麻烦的就是设计或者说是布局一个窗体。
在一个窗体里可能有button、panel、label、textArea等各种组件,如何布局这些,将他们放在想要的位置,还是比较麻烦的。可能少个什么设置语句,整个布局都会出错……