Chinaunix首页 | 论坛 | 博客
  • 博客访问: 433858
  • 博文数量: 54
  • 博客积分: 610
  • 博客等级: 上士
  • 技术积分: 721
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-24 10:52
文章分类

全部博文(54)

文章存档

2013年(27)

2012年(11)

2011年(16)

分类: Java

2011-02-15 21:48:30

很多人说JAVA 做桌面程序,涉及到GUI的时候,很麻烦。我也有同感,每个都是类,而不是标签性质,这样用起来确实麻烦,不如web端方便。

如上图所示,要手动用awt以及swing,如何做到这个页面呢?下面是涉及到的类,以及自己部分源代码。
1.页面所需的变量
  1. private Container myCon = getContentPane();//容器
  2. protected JTextArea myJta = new JTextArea();//文本区
  3. private JScrollPane myJsp ;//滚动条
  4. private JMenuBar myJmb = new JMenuBar();//菜单栏
  5. private JLabel statusLabel = new JLabel("新建文本");//状态栏

2.容器类
swing中的容器类,在容器中,可以添加相应的组件。在此程序中,,myCon实例为容器,而这个容器中包含文本区,菜单栏,还有状态栏。
  1. Container myCon = getContentPane();//获得当前容器
  2. myCon.add(myJsp,BorderLayout.CENTER); //添加组件
  3. myCon.add(statusLabel, BorderLayout.SOUTH);
其中,BorderLayout为布局格式,swing中有很多种布局格式。
3.带有滑动条的文本框
  1. protected JTextArea myJta = new JTextArea();//文本区
  2. myJta.setLineWrap(true);//设置是否自动换行
  3. private JScrollPane myJsp ;//滚动条
  4. myJsp = new JScrollPane(myJta);

4.菜单栏以及加速器,快捷键
形如其中,最上一栏为菜单栏,而字母(E)等指的加速器,而CTRL+Z指的是快捷键。

  1. //文件菜单,子菜单
  2. private JMenu mFile = new JMenu("文件(F)");
  3. private JMenuItem itNew = new JMenuItem("新建(N)");
 setJMenuBar(myJmb);//菜单栏
  myJmb.add(mFile);//子菜单
 mFile.setMnemonic('F');//添加加速器
  mFile.add(itNew);
  itNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));//添加快捷键
  itNew.setMnemonic('N');
  itNew.addActionListener(this);//添加事件响应

5.状态栏
  1. myCon.add(statusLabel, BorderLayout.SOUTH);//添加状态栏
6.事件响应
  1. itNew.addActionListener(this);//添加事件响应
其中,还要捕捉事件,进行相应的操作。
  1. public void actionPerformed(ActionEvent e) {
  2.         // TODO Auto-generated method stub
  3.         actStr = e.getActionCommand();
  4.         if("新建(N)".equals(actStr)){
  5.             newFile();
  6.         }




阅读(1707) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~