Java手记---Swing类和awt类
1 | Graphics a; |
Checkbox(String s)用来建复选框与单选框。
Choice()用来建下拉式单选。
Frame(String s)用来建窗口。
Button(String s)用来建按钮。
Label(String s)用来建标签。
1 | setLayout(new FlowLayout()); |
如果main中加上这个函数
1 |
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});//////////就可以实现窗口关闭功能。
public class MouseMoveHandler implements MouseListener {
private Color source = null;
public void mouseEntered(MouseEvent e) {
source = e.getComponent().getBackground();
e.getComponent().setBackground(Color.PINK);
}
public void mouseExited(MouseEvent e) {
e.getComponent().setBackground(source);
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseClicked(MouseEvent e) {
}
}
awt提供的控件:
- Button
- Label
- Checkbox
- CheckboxGroup
- Choice
- TextField
- TextArea
- List
- Font
- Image
- Canvas
- Graphics2D
- Dialog
- ScrollPanel
- Menu
- Toolkit
- InputMethod
1 | textTabbedPane = new JTabbedPane(JTabbedPane.BOTTOM);/////将标签放在下部。 |
在编写菜单的时候不需写setLayout(new FlowLayout());
如果在编写按钮的时候不写上面的代码,那么按钮就会变的很大。上一行代码是布局管理器。
应该始终有一个File菜单,它应该始终在菜单栏的最左边。菜单项New,Open…和Close(如
果有的话)
应该按上面的次序出现。New应该是第一项,Exit应该是最后一项。
如果有Edit项的话,应该为第二项,它应该有copy,paste,cut等功能。
如果有help项的话,应该是最后一项。
如果不把菜单加到菜单栏上,那么菜单栏就不会出现。
1 | TextArea ta = new |
有两种布局管理器:流程布局管理器和边框布局管理器。
1.流程布局管理器
setLayout(new FlowLayout(FlowLayout.LEFT));
2.边框管理器
边框管理器使用add();使用边框管理器的容器只能有五个构件。
1 | add(sb,"North");//////这就是边框管理器。之前不再用setLayout(new FlowLayout()); |
调用了边框管理器后,构件的大小就不再受传入参数的制约。如果不指明就将占据剩余的整个空间。
1 | Panel p = new Panel();//////////创建新面板。 |
流程管理器可以兑现构件的优先大小。而边框管理器不行。此外还有3个管理器:
- CardLayout(),仅允许在任何时候只有一个构件是可见的。
- GridLayout()
- GridBagLayout().
////////////////////////MenuBar mb = new MenuBar();
////////////////////////setMenuBar(mb);///////////此句用于设置菜单栏。
当一个构件和一个paint()方法都负责屏幕的同一部分时,总是构件获胜。
1)创建构件。
2)创建实现Listener接口的收听者。
3)构造该收听者的一个实例。
调用该构件addListener()方法,同时传入刚建成的收听者类的实例。
1 |
|
使用repaint()方法可以刷屏并调用paint()。
当画的图形位置不对时,有可能在屏幕上显示不出来。
1 | tf.setText("Font Color is " |
当程序启动时paint()调用。当图文框被完全覆盖时,paint()被调用,当图文框放大时,paint()被调用。被最小化再还原时调用。
其余时间都不会调用paint()。
1 | btn[i].addActionListener(this); |
想让一个任意的类成为一个动作收听者,光实现一个actionperformed()的方法是不够的。因为单凭这一点不能
认为它实现了ActionListener接口。
当类中函数要用到其它函数中的变量时,特别是构件要声明成类的变量而不是函数中的变量。
publicTextPane是放在publicScrollPane上的,而publicScrollPane是放在textTabbedPane上的。
这样使用:
1 | publicTextPane.setEditable(false);///这个面板是否可以操作。 |