《疯狂 JAVA 讲义》读书笔记第十二章

窗口

 

JFrame():创建一个无标题窗口。

JFrame(String s):创建一个标题为s的窗口。

setBounds(int x,int y,int wigth,int height):设置窗口初始位置x,y,宽高width,height。

setSize(int width,int height):设置窗口宽高width,height。

setLocation(int x,int y):设置窗口初始位置x,y,默认(0,0)。

setVisible(boolean x):设置窗口是否可见,默认不可见。

setResizable(boolean x):设置窗口是否可以调整大小,默认可以调整。

dispose():撤销窗口,并释放当前窗口所使用的资源。

setExtendedState(int state):设置窗口的扩展状态。

pack():调整窗口的大小, 以适合其子组件的首选大小和布局。

setIconImage(Image image):设置窗口的图标。

setLocationRelativeTo(Component comp):comp 为 null, 表示将窗口放置到屏幕中心。

 

setDefaultLookAndFeelDecorated(true)

在创建窗口前使用JFrame.setDefaultLookAndFeelDecorated(true),会使窗口的外观更漂亮。

这个方法要写在new JFrame()对象之前。

  1. JFrame test = new JFrame("testone");
  2. JFrame.setDefaultLookAndFeelDecorated(true); //错误
  3. JFrame.setDefaultLookAndFeelDecorated(true); //正确
  4. JFrame test = new JFrame("testone");
  • 1
  • 2
  • 3
  • 4

 

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

在写完界面的时候千万要注意写一个关闭窗口的方法,setDefaultCloseOperation(int operation):该方法用来设置单击窗口右上角的关闭图标后,程序会做出怎样的处理。方法中的参数解释如下:

  • DO_NOTHING_ON_CLOSE:不执行任何操作;
  • HIDE_ON_CLOSE:隐藏当前窗口,此时没有关闭程序。
  • DISPOSE_ON_CLOSE:隐藏当前窗口,并释放窗体中占用的其他资源。
  • EXIT_ON_CLOSE:结束窗口所在的应用程序。

默认情况下,该值被设置为 HIDE_ON_CLOSE。

使用时也可用数字0、1、2、3代替上述四个参数,如:

setDefaultCloseOperation(3) 与 setDefaultCloseOperation(EXIT_ON_CLOSE)等同。

一般情况下使用setDefaultCloseOperation(3)即可。

 

菜单

窗口中的菜单是我们所熟悉的组件。菜单放在菜单条里,菜单项放在菜单里。

 

JMenuBar():创建一个菜单条。

setJMenuBar(JMenuBar bar):将菜单条加入窗口顶端。只能向窗口添加一个菜单条

JMenu():创建无标题的菜单。

JMenu(String s):创建标题为s的菜单。

add(JMenuItem item):向菜单添加菜单项。可以向菜单添加子菜单。

getItem(int x):获得指定索引处的菜单项。

getItemCount():获得菜单项的数目。

JMenuItem(String s):创建标题为s 的菜单项。

JMenuItem(String s,Icon icon):创建标题为s的,图标为icon的菜单项。

setEnabled(boolean x):设置当前菜单项是否可以被选择。

getText():获得菜单项的名字。

setText(String s):设置菜单项的名字为指定s。

setAccelerator(KeyStroke keyStroke):设置菜单项快捷键。

 

为了使菜单项有一个图标,可以用图标类 Icon声明一个图标,然后使用其子类ImageIcon类创建一个图标,如

Icon icon = new ImageIcon("a.gif");

 

文本框

 

JTextField():创建文本框。

JTextField(int x):创建长度为x的文本框。

JTextField(String s):创建文本框,文本框初始内容为s。

JPasswordField():和JTextField()用法相同,但是输入的信息会显示为'·'号,可以用于输入密码

setText(String s):设置文本框内容为s。

getText():获取文本框内容。

setEditable(boolean x):设置文本框的可编辑性,默认可编辑。

setHorizontalAlignment(int x):设置文本框文本的对齐方式。

addActionListener(ActionListener):向文本框添加动作监视器。

removeActionListener(ActionListener):移除动作监视器。

 

实例代码

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. public class GuiTest {
  5. public static void main(String[] args) {
  6. JFrame.setDefaultLookAndFeelDecorated(true); //使窗口美观,创建窗口前使用
  7. GuiWm test = new GuiWm("test",600,300,240,320); //创建对象test
  8. JTextField text = new JTextField(10); //创建文本框text
  9. text.setBounds(50,20,130,25); //设置文本框位置,大小
  10. test.add(text); //添加文本框到test
  11. }
  12. }
  13. //使用JFrame扩展一个子类GuiWm
  14. class GuiWm extends JFrame{
  15. JMenuBar mb; //声明菜单条
  16. JMenu me1,me2,me3,me4; //声明菜单
  17. JMenuItem i1,i2,i3,i4,i5,i6; //声明菜单项
  18. GuiWm(){}
  19. GuiWm(String s,int x,int y,int w,int h){
  20. init(s);
  21. setBounds(x,y,w,h); //设置窗口位置、大小
  22. setVisible(true); //设置窗口可见
  23. setDefaultCloseOperation(3); //设置窗口关闭方式
  24. }
  25. void init(String s) {
  26. setTitle(s); //设置窗口标题
  27. //以下为创建菜单条、菜单、菜单项
  28. mb = new JMenuBar();
  29. me1 = new JMenu("查看");
  30. me2 = new JMenu("界面");
  31. me3 = new JMenu("帮助");
  32. i1 = new JMenuItem("简单型");
  33. i2 = new JMenuItem("标准型");
  34. i3 = new JMenuItem("键盘输入");
  35. i4 = new JMenuItem("鼠标输入");
  36. i5 = new JMenuItem("help");
  37. i6 = new JMenuItem("关于");
  38. me1.add(i1); //向菜单添加菜单项
  39. me1.addSeparator(); //设置分隔线,也可以不设
  40. me1.add(i2);
  41. me2.add(i3);
  42. me2.addSeparator();
  43. me2.add(i4);
  44. me3.add(i5);
  45. me3.addSeparator();
  46. me3.add(i6);
  47. mb.add(me1); //添加菜单到菜单条
  48. mb.add(me2);
  49. mb.add(me3);
  50. setJMenuBar(mb); //添加菜单条到窗口
  51. }
  52. }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71

 

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务