您的位置:首页 > 产品设计 > UI/UE

黑马程序员:Java基础总结----GUI图形化界面

2013-07-07 13:27 671 查看
黑马程序员:Java基础总结

GUI图形化界面

ASP.Net+Android+IO开发.Net培训、期待与您交流!

GUI(Graphical User Interface)图形化界面编程总结
Java.Awt:Abstract Window ToolKit(抽象窗口工具包)
Javax.Swing:

图形化界面基本设置:
设置窗体大小:setSize(长,宽);
设置窗体位置:setLocation(距离左,距离上);setBounds(长,宽,距离左,距离上);
设置布局:setLayout(new FlowLayout());
使窗体可见:setVisible(true);
事件监听机制:

事件监听机制的特点:
1,事件源。
2,事件。
3,监听器。
4,事件处理。
事件源:就是awt包或者swing包中的那些图形界面组件。
事件:每一个事件源都有自己特有的对应事件和共性事件。
监听器:将可以触发某一个事件的动作(不只一个动作)都已经封装到了监听器中。
以上三者,在java中都已经定义好了。
直接获取其对象来用就可以了。
我们要做的事情是,就是对产生的动作进行处理

Eg:编写程序,练习图形化界面编程!

[align=left]import java.awt.*;[/align]
[align=left]import java.awt.event.*;[/align]
[align=left]import java.io.*;[/align]

public class MyWindowDemo
{
[align=left] private Frame f ;[/align]
[align=left] private TextField tf ;[/align]
[align=left] private Button but ;[/align]
[align=left] private TextArea ta ;[/align]
[align=left] private Dialog d ;[/align]
[align=left] private Label lab ;[/align]
[align=left] private Button okBut ;[/align]

[align=left] MyWindowDemo() {[/align]
[align=left] init();[/align]
[align=left] }[/align]

public void init()
{
f = new Frame("my
window" );
f.setBounds(300,
100, 600, 500);
[align=left] f.setLayout( new FlowLayout());[/align]
[align=left] tf = new TextField(60);[/align]
[align=left] but = new Button( "转到");[/align]
ta = new TextArea(25,
70);
[align=left] d = new Dialog(f , "提示信息-self" , true);[/align]
d.setBounds(400,
200, 240, 150);
[align=left] d.setLayout( new FlowLayout());[/align]
[align=left] lab = new Label();[/align]
[align=left] okBut = new Button( "确定");[/align]
[align=left] d.add( lab );[/align]
[align=left] d.add( okBut );[/align]
[align=left] f.add( tf);[/align]
[align=left] f.add( but );[/align]
[align=left] f.add( ta);[/align]
[align=left] myEvent();[/align]
[align=left] f.setVisible( true );[/align]
[align=left] }[/align]

private void myEvent()
{
okBut .addActionListener( new ActionListener()
{
public void actionPerformed(ActionEvent
e) {
[align=left] d.setVisible( false );[/align]
[align=left] }[/align]
[align=left] });[/align]
d.addWindowListener( new WindowAdapter()
{
public void windowClosing(WindowEvent
e) {
[align=left] d.setVisible( false );[/align]
[align=left] }[/align]
[align=left] });[/align]
tf.addKeyListener( new KeyAdapter()
{
public void keyPressed(KeyEvent
e) {
if (e.getKeyCode()
== KeyEvent. VK_ENTER)
[align=left] showDir();[/align]
[align=left] }[/align]
[align=left] });[/align]
but .addActionListener( new ActionListener()
{
public void actionPerformed(ActionEvent
e) {
[align=left] showDir();[/align]
[align=left] }[/align]
[align=left] });[/align]
f.addWindowListener( new WindowAdapter()
{
public void windowClosing(WindowEvent
e) {
[align=left] System. exit(0);[/align]
[align=left] }[/align]
[align=left] });[/align]
[align=left] }[/align]

private void showDir()
{
[align=left] String dirPath = tf.getText();[/align]
[align=left] File dir = new File(dirPath);[/align]
if (dir.exists()
&& dir.isDirectory()) {
[align=left] ta.setText( "" );[/align]
[align=left] String[] names = dir.list();[/align]
for (String
name : names) {
ta.append(name
+ "\r\n" );
[align=left] }[/align]
[align=left] } else {[/align]
String info = "您输入的信息:" +
dirPath + "是错误的。请重输" ;
[align=left] lab .setText(info);[/align]
[align=left] d.setVisible( true );[/align]
[align=left] }[/align]
[align=left] }[/align]

public static void main(String[]
args) {
[align=left] new MyWindowDemo();[/align]
[align=left] }[/align]
[align=left]}[/align]

菜单:

MenuBar 菜单整体;
Menu 包含于MenuBar中;MenuItem包含于Menu中!
以上3个关系添加用add();
将MenuBar放进Frame中用setMenuBar();
FileDialog.LOAD:打开的mode
FileDialog.Save:保存的mode

练习:一个简易的记事本

[align=left]import java.awt.*;[/align]
[align=left]import java.awt.event.*;[/align]
[align=left]import java.io.*;[/align]

public class MyMenuDemo
{
[align=left] private Frame f ;[/align]
[align=left] private TextArea ta ;[/align]
[align=left] private MenuBar mb ;[/align]
[align=left] private Menu me ;[/align]
[align=left] private MenuItem miNew , miSave , miLoad ;[/align]
[align=left] private File file ;[/align]
[align=left] private FileDialog openDia , saveDia ;[/align]

[align=left] MyMenuDemo() {[/align]
[align=left] init();[/align]
[align=left] }[/align]

public void init()
{
[align=left] f = new Frame("万琪--记事本" );[/align]
f.setBounds(300,
100, 650, 600);
[align=left] ta = new TextArea();[/align]
//
ta.setBounds(302,105,400,300);
//
f.setLayout(new FlowLayout());//为什么设置成了流式布局之后再设置文本区域没有效果
[align=left] mb = new MenuBar();[/align]
[align=left] me = new Menu("文件(F)" );[/align]
[align=left] miNew = new MenuItem("新建");[/align]
[align=left] miSave = new MenuItem("保存(S)");[/align]
[align=left] miLoad = new MenuItem("打开(O)");[/align]
[align=left] mb.add( me);[/align]
[align=left] me.add( miNew);[/align]
[align=left] me.add( miLoad);[/align]
[align=left] me.add( miSave);[/align]
[align=left] f.setMenuBar( mb);[/align]
[align=left] f.add( ta);[/align]
openDia = new FileDialog(f, "打开文件",
FileDialog. LOAD);
saveDia = new FileDialog(f, "保存文件",
FileDialog. SAVE);
[align=left] myEvent();[/align]
[align=left] f.setVisible( true);[/align]
[align=left] }[/align]

public void myEvent()
{
f.addWindowListener( new WindowAdapter()
{
public void windowClosing(WindowEvent
e) {
[align=left] System. exit(0);[/align]
[align=left] }[/align]
[align=left] });[/align]
miLoad.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent
e) {
[align=left] openDia.setVisible(true);[/align]
[align=left] String dirPath = openDia.getDirectory();[/align]
[align=left] String fileName = openDia.getFile();[/align]
if (dirPath
== null || fileName == null)
[align=left] return;[/align]
[align=left] ta.setText( "");[/align]
file = new File(dirPath,
fileName);
[align=left] try {[/align]
[align=left] BufferedReader bufr = new BufferedReader(new FileReader([/align]
[align=left] file));[/align]
[align=left] String line = null;[/align]
while ((line
= bufr.readLine()) != null) {
ta.append(line
+ "\r\n");
[align=left] }[/align]
[align=left] bufr.close();[/align]
} catch (IOException
ex) {
[align=left] throw new RuntimeException("读取失败");[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] });[/align]
miSave.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent
e) {
if (file == null)
{
[align=left] saveDia.setVisible(true);[/align]
[align=left] String dirPath = saveDia.getDirectory();[/align]
[align=left] String fileName = saveDia.getFile();[/align]
if (dirPath
== null || fileName == null)
[align=left] return;[/align]
file = new File(dirPath,
fileName);
[align=left] }[/align]
[align=left] try {[/align]
[align=left] BufferedWriter bufw = new BufferedWriter(new FileWriter([/align]
[align=left] file));[/align]
[align=left] String text = ta.getText();[/align]
[align=left] bufw.write(text);[/align]
[align=left] bufw.close();[/align]
} catch (IOException
ex) {
[align=left] throw new RuntimeException("");[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] });[/align]
[align=left] }[/align]

public static void main(String[]
args) {
[align=left] new MyMenuDemo();[/align]
[align=left] }[/align]
[align=left]}[/align]

打jar包的过程:
1、 编译包 jar –cvf jar名 包名
2、 写一个文件main-class: 包名.类名【加个回车】
3、 jar –cvfm jar名 文件名 包名
配置jar执行的过程:
工具---文件夹选项---文件类型---新建---文件扩展名jar
然后确定----高级----修改图标-----open------javaw的路径—jar即可!



ASP.Net+Android+IO开发.Net培训、期待与您交流!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: