GUI :
java对图形界面编程提供额多个组件都存放在AWT和Swing包中.
awt:不跨平台,显示样式和颜色依赖平台.
Swing:跨平台的.
awt:Component:
|--Button
|--Label
|--Checkbox
|--TextComponent
|--TextField
|--TextArea
|--Container(容器,可以存放组件的组件)
|--Window
|--Frame
|--Dialog
|--FileDialog
|--Panel
双击jar文件直接显示图形化界面:
1、定义一个配置文件:格式:Main-Class:空格包名.主类名回车
2、命令:jar -cvfm demo.jar demo.txt demopack
3、用winrar查看是否已经增加了对执行类的配置。
4、文件夹选项设置打开的关联文件:bin\javaw.ext -jar
//package mywin;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
class MyWindowDemo
{
public static void main(String[] args)
{
new MyWindow();
}
}
class MyWindow
{
//文件浏览
private Frame f;
private Button b;
private TextField tf;
private TextArea ta;
//记事本.
private MenuBar mb;
private Menu fileMenu;
private MenuItem openItem;
private MenuItem saveItem;
private MenuItem closeItem;
private File saveFile;
MyWindow()
{
initial();
myEvent();
f.setVisible(true);
}
//初始化
private void initial()
{
f = new Frame("测试窗口");
f.setBounds(300, 200, 475, 420);
f.setLayout(new FlowLayout());
b = new Button("转到");
tf = new TextField(53);
ta = new TextArea(20, 60);
//菜单.
mb = new MenuBar();
fileMenu = new Menu("文件");
openItem = new MenuItem("打开");
saveItem = new MenuItem("保存");
closeItem = new MenuItem("关闭");
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.add(closeItem);
mb.add(fileMenu);
f.setMenuBar(mb);
f.add(tf);
f.add(b);
f.add(ta);
}
private void myEvent()
{
//窗口事件监听.
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//按钮事件监听
b.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//扫描路径下的所有文件和文件夹并列举出来.
String path = tf.getText();
File dir = new File(path);
if (dir.exists() && dir.isDirectory())
{
ta.setText(null);
String [] list = dir.list();
for (String s : list)
{
ta.append(s + "\r\n");
}
}
}
});
//打开菜单事件监听.
openItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
FileDialog openDlg = new FileDialog(f, "打开文件", FileDialog.LOAD);
openDlg.setVisible(true);
String dirName = openDlg.getDirectory();
String fileName = openDlg.getFile();
//System.out.println(dirName + ":" + fileName);
if (dirName == null && fileName == null)
{
return ;
}
ta.setText(null);
BufferedReader bufr = null;
try
{
saveFile = new File(dirName, fileName);
bufr = new BufferedReader(new FileReader(saveFile)); //一打开就初始化文件.
String line = null;
while ((line = bufr.readLine()) != null)
{
ta.append(line+"\r\n");
}
}
catch (IOException ex)
{
System.out.println(ex.toString());
}
finally
{
try
{
bufr.close();
}
catch (Exception ex1)
{
System.out.println(ex1.toString());
}
}
}
});
//保存菜单事件监听.
saveItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
FileDialog saveDlg = new FileDialog(f, "保存文件", FileDialog.SAVE);
if (saveFile == null)
{
saveDlg.setVisible(true);
String dirName = saveDlg.getDirectory();
String fileName = saveDlg.getFile();
saveFile = new File(dirName, fileName);
//System.out.println(dirName + ":" + fileName);
if (dirName == null && fileName == null)
{
return ;
}
}
BufferedWriter bufw = null;
try
{
bufw = new BufferedWriter(new FileWriter(saveFile));
String text = ta.getText();
System.out.println(text);
bufw.write(text);
}
catch (IOException ex)
{
System.out.println(ex.toString());
}
finally
{
try
{
bufw.close();
}
catch (Exception ex1)
{
System.out.println(ex1.toString());
}
}
}
});
//关闭菜单事件监听.
closeItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
}
}