--GUI界面编程--java学习日记9(基础知识)

来源:互联网 发布:淘宝热度 编辑:程序博客网 时间:2024/05/21 03:26


       GUI是Graphic User Interface的缩写,意思是图形用户界面。它可以用来创建一个窗口,添加各种组件并相应用户的操作。

创建图形用户界面的一般步骤如下:

1,创建frame窗体。             Frame frame = new Frame();    这样就创建了一个简单的窗体,很简单吧,但运行一下什么效果都没有,因为它默认是不可见的,要进行进一步设置。
2,对窗体进行基本设置。
 比如大小,位置,布局。     setSize()     setBounds()     setLocation()     setLayout()
3,定义组件。
4,将组件通过窗体的add方法添加到窗体中。
5,让窗体显示,通过setVisible(true);

完成上面5步就可以看见效果了,下面是一个简单的例子。

import java.awt.*;import java.awt.event.*;class MyFrame {private Frame frame;public MyFrame(String title){frame = new Frame(title); // 创建一个窗体,title为窗体的标题init();  // 进行初始化}// 对窗体进行初始化的代码public void init(){frame.setBounds(300, 200, 400, 300); // 设置窗体出现的位置和大小frame.setLayout(new FlowLayout());frame.addWindowListener(new WindowAdapter() // 为窗体添加监听,使其相应关闭操作{public void windowClosing(WindowEvent e){System.exit(0); // 当用户点击关闭,会退出程序并隐藏窗体}});Button test = new Button("测试按钮"); // 定义一个按钮frame.add(test); // 将按钮添加到窗体上frame.setVisible(true); // 设置窗体可见}public static void main(String[] args) {new MyFrame("这是我的窗体"); // 启动程序,创建并显示一个窗体,按关闭按钮退出}}


运行效果如下:

           因为已经为窗体添加了事件监听,可以按关闭按钮关闭窗体。当然,要实现更为丰富的操作,仅仅是这些肯定不够,还可以为按钮添加监听,当点击按钮也可以进行一些操作。按钮的监听是ActionListener,只要调用按钮的addActionListener()方法就可以为按钮添加监听,其处理代码在actionPerformed方法中。也可以像窗体中添加其他组件,如标签,文本区,单选框,复选框等。它们都可以添加相应的监听来相应并处理用户的操作。

           常用的添加监听的方法有两种:

 一是声明一个监听器XxxListener的匿名内部类并实现相应的处理方法作为参数传递给addXxxListener()方法,上面例子中为窗体添加关闭监听用的就是匿名内部类的方式。

 

二是定义一个监听器的子类,实现相应的处理方法,并创建一个该类对象作为参数传递给addXxxListener()方法。

class MyListener implements ActionListener{public void actionPerformed(ActionEvent e)  // 所有的动作监听器监听到的事件都到这里处理{if(e.getSource() == go)  // 点击“转到”按钮{showDir();}else if(e.getSource() == ok) // 点击警告框上的“确定”按钮{alert.setVisible(false);}}}


为按钮添加监听:

Button go = new Button("转到");// 创建一个按钮go.addActionListener(this);// 为按钮添加监听,相应点击操作


 

        一个综合的例子:设计一个窗口,用户在文本域输入一个路径,点击按钮在一个多行文本区中显示该路径下的所有目录,如果路径不存在则弹窗提示。

思路:窗体中应该有一个文本域TextField来接收用户的输入,有一个按钮来让用户确定,还有一个多行文本区来显示结果。获取路径后,用File类的list方法得到指定路径下的目录名并显示。

代码如下:

import java.awt.*;import java.io.*;import java.awt.event.*;class MyFrameTest extends Frame implements ActionListener{private Button go;      //定义一系列要添加的组件,按钮、文本区、标签、对话框等private TextField tf;private TextArea ta;private Dialog alert;private Label lab;private Button ok;public MyFrameTest(String title)  // 构造函数,title为窗体标题{super(title);init();  // 执行窗体初始化方法}public void init()   // 用来设置窗体的属性{setBounds(300, 200, 800, 600);setLayout(new FlowLayout());addWindowListener(new WindowAdapter() // 为窗体添加监听,使其相应关闭操作{public void windowClosing(WindowEvent e){System.exit(0); // 当用户点击关闭,会退出程序并隐藏窗体}});// 组件的具体属性tf = new TextField(70);  // 设置文本域的长度ta = new TextArea(40, 80);// 设置多行文本区的行数和列数go = new Button("转到");ok = new Button("确定");// 将组件添加到窗体add(tf);add(go);add(ta);alert = new Dialog(this, "找不到指定文件", true); // 定义一个警告提示对话框alert.setLayout(new FlowLayout());// 设置窗体布局为流式布局lab = new Label();alert.add(lab);alert.add(ok);// 为按钮添加监听,相应操作go.addActionListener(this);ok.addActionListener(this);tf.addKeyListener(new KeyAdapter() // 为文本域添加相应键盘的监听{public void keyPressed(KeyEvent e){if(e.getKeyCode() == KeyEvent.VK_ENTER) // 当按下回车键时{showDir(); // 自定义的一个函数,用来显示目录}}});setVisible(true);}public void actionPerformed(ActionEvent e)  // 所有的动作监听器监听到的事件都到这里处理{if(e.getSource() == go)  // 点击“转到”按钮{showDir();}else if(e.getSource() == ok) // 点击警告框上的“确定”按钮{alert.setVisible(false);}}public void showDir(){String path = tf.getText();  // 获得文本域的内容File f = new File(path);  // 根据输入的路径创建一个文件对象if(!f.exists()){lab.setText(path+"--找不到指定路径!");alert.setBounds(350, 250, 300, 200);alert.setVisible(true);//throw new FileNotFoundException("文件找不到");}else{ta.setText("");  // 清除多行文本区的内容,准备显示下一个遍历的目录int count = 1;for(File file : f.listFiles())  // 遍历指定目录{ta.append(count++ + "--"+file.getName());ta.append("\n");}}}public static void main(String[] args) {new MyFrameTest("文件搜索");}}


 

如何将.java文件转成可执行文件?

前提:源文件应放入包中,即有package语句。

1.将源文件带包进行编译: javac -d 存放路径 类名.java

2.添加清单文件信息--新建一个文件,例mf.txt,写入以下内容:

Main-Class: 包名.类名(含主方法的类)

(要回车换行表示一行结束)

3.打jar包:jar -cvfm name.jar mf.txt 包名

 

经过上面三个步骤,java就编程可执行文件了!

0 0
原创粉丝点击