- 浏览: 978681 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
Mr.Cheney:
去掉 UUID字符串中的“-” 直接replaceAll(&q ...
JAVA生成全局唯一ID 使用 java.util.UUID -
呜哩喵:
楼主nice
java中的时间操作 -
zxs6587:
Thinking inJava我读着好像说要建立基类对象啊!请 ...
创建子类的对象时也要创建其所有父类的对象? -
just_Word:
getFullYear
date.getyear -
JamesQian:
我觉得楼上的synchronized(this),notify ...
notify() wait()
Java图形界面编程
AWT
AWT(Abstract Window Toolkit),抽象窗口工具包,SUN公司提供的用于图形界面编程(GUI)的类库。基本的AWT库处理用户界面元素的方法是把这些元素的创建和行为委托给每个目标平台上(Windows、Unix、Macintosh等)的本地GUI工具进行处理。例如:如果我们使用AWT在一个Java窗口中放置一个按钮,那么实际上使用的是一个具有本地外观和感觉的按钮。这样,从理论上来说,我们所编写的图形界面程序能运行在任何平台上,做到了图形界面程序的跨平台运行。
布局管理器
1) 容器里组件的位置和大小是由布局管理器来决定的。容器对布局管理器的特定实例保持一个引用。当容器需要定位一个组件时,它将调用布局管理器来完成。当决定一个组件的大小时,也是如此。
2) 在AWT中,给我们提供了五种布局管理器:
BorderLayout、FlowLayout、GridLayout、CardLayout、GridBagLayout
AWT事件模型
1) Events(事件):描述发生了什么的对象。
2) Event source(事件源):事件的产生器。
3) Event handlers(事件处理器):接收事件对象、解释事件对象并处理用户交互的方法。
事件监听器
实现了监听器接口的类。一个监听器对象是一个实现了专门的监听器接口的类的实例。
如增加窗口监听,实现按关闭按钮时退出,WindowAdapter为一个空实现了WindowListener接口的抽象类,故其不能直接用new来创建对象,可以通过匿名类来实现,在中间重写windowClosing方法:
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
如对按钮增加单击事件监听:当点击按钮Welcome时,将显示为Hello。
Button btn1=new Button("Welcome");
btn1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
((Button)e.getSource()).setLabel("Hello");
}
});
对于CardLayout布局管理器,可以通过增加事件监听器来实现卡片式翻动:
Panel cardPanel=new Panel();
Button btn1=new Button("North");
Button btn2=new Button("South");
final CardLayout cl=new CardLayout();
cardPanel.setLayout(cl);
ActionListener al=new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
cl.next(cardPanel);
}
};
btn1.addActionListener(al);
btn2.addActionListener(al);
cardPanel.add(btn1,"1");
cardPanel.add(btn2,"2");
菜单及打开、保存对话框
先创建菜单栏MenuBar,在创建菜单Menu,最后创建菜单项MenuItem,然后把菜单项加到菜单上,把菜单加到菜单栏上,最后用setMenuBar把菜单栏加到Frame上。
为打开菜单项增加事件监听器,创建打开文件对话框,然后通过TextArea来显示打开的文件内容。
final Frame f=new Frame("MenuBarTest");
f.setSize(600,400);
f.setLocation(100,100);
MenuBar mb=new MenuBar();
Menu mn1=new Menu("File");
Menu mn2=new Menu("Edit");
MenuItem m1=new MenuItem("new");
MenuItem m2=new MenuItem("open");
MenuItem m3=new MenuItem("save");
MenuItem m4=new MenuItem("exit");
MenuItem m5=new MenuItem("copy");
MenuItem m6=new MenuItem("paste");
final TextArea ta=new TextArea();
f.add(ta);
m2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
FileDialog fd=new FileDialog(f,"打开文件对话框",FileDialog.LOAD);
fd.show();
// getDirectory()获得对话框打开目录的路径,str即打开文件的完整路径
String str=fd.getDirectory()+fd.getFile();
if(str!=null)
{
try
{
FileInputStream fis=new FileInputStream(str);
byte []buf=new byte[10*1024];
int len=fis.read(buf);
ta.append(new String(buf,0,len));
fis.close();
}
catch(Exception ex)
{
ex.printStackTrace();
} } }
});
m3.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
FileDialog fd=new FileDialog(f,"保存文件对话框",FileDialog.SAVE);
fd.show();
}
});
m4.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
mn1.add(m1);
mn1.add(m2);
mn1.add(m3);
mn1.add(m4);
mn2.add(m5);
mn2.add(m6);
mb.add(mn1);
mb.add(mn2);
f.setMenuBar(mb);
f.show();
AWT
AWT(Abstract Window Toolkit),抽象窗口工具包,SUN公司提供的用于图形界面编程(GUI)的类库。基本的AWT库处理用户界面元素的方法是把这些元素的创建和行为委托给每个目标平台上(Windows、Unix、Macintosh等)的本地GUI工具进行处理。例如:如果我们使用AWT在一个Java窗口中放置一个按钮,那么实际上使用的是一个具有本地外观和感觉的按钮。这样,从理论上来说,我们所编写的图形界面程序能运行在任何平台上,做到了图形界面程序的跨平台运行。
布局管理器
1) 容器里组件的位置和大小是由布局管理器来决定的。容器对布局管理器的特定实例保持一个引用。当容器需要定位一个组件时,它将调用布局管理器来完成。当决定一个组件的大小时,也是如此。
2) 在AWT中,给我们提供了五种布局管理器:
BorderLayout、FlowLayout、GridLayout、CardLayout、GridBagLayout
AWT事件模型
1) Events(事件):描述发生了什么的对象。
2) Event source(事件源):事件的产生器。
3) Event handlers(事件处理器):接收事件对象、解释事件对象并处理用户交互的方法。
事件监听器
实现了监听器接口的类。一个监听器对象是一个实现了专门的监听器接口的类的实例。
如增加窗口监听,实现按关闭按钮时退出,WindowAdapter为一个空实现了WindowListener接口的抽象类,故其不能直接用new来创建对象,可以通过匿名类来实现,在中间重写windowClosing方法:
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
如对按钮增加单击事件监听:当点击按钮Welcome时,将显示为Hello。
Button btn1=new Button("Welcome");
btn1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
((Button)e.getSource()).setLabel("Hello");
}
});
对于CardLayout布局管理器,可以通过增加事件监听器来实现卡片式翻动:
Panel cardPanel=new Panel();
Button btn1=new Button("North");
Button btn2=new Button("South");
final CardLayout cl=new CardLayout();
cardPanel.setLayout(cl);
ActionListener al=new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
cl.next(cardPanel);
}
};
btn1.addActionListener(al);
btn2.addActionListener(al);
cardPanel.add(btn1,"1");
cardPanel.add(btn2,"2");
菜单及打开、保存对话框
先创建菜单栏MenuBar,在创建菜单Menu,最后创建菜单项MenuItem,然后把菜单项加到菜单上,把菜单加到菜单栏上,最后用setMenuBar把菜单栏加到Frame上。
为打开菜单项增加事件监听器,创建打开文件对话框,然后通过TextArea来显示打开的文件内容。
final Frame f=new Frame("MenuBarTest");
f.setSize(600,400);
f.setLocation(100,100);
MenuBar mb=new MenuBar();
Menu mn1=new Menu("File");
Menu mn2=new Menu("Edit");
MenuItem m1=new MenuItem("new");
MenuItem m2=new MenuItem("open");
MenuItem m3=new MenuItem("save");
MenuItem m4=new MenuItem("exit");
MenuItem m5=new MenuItem("copy");
MenuItem m6=new MenuItem("paste");
final TextArea ta=new TextArea();
f.add(ta);
m2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
FileDialog fd=new FileDialog(f,"打开文件对话框",FileDialog.LOAD);
fd.show();
// getDirectory()获得对话框打开目录的路径,str即打开文件的完整路径
String str=fd.getDirectory()+fd.getFile();
if(str!=null)
{
try
{
FileInputStream fis=new FileInputStream(str);
byte []buf=new byte[10*1024];
int len=fis.read(buf);
ta.append(new String(buf,0,len));
fis.close();
}
catch(Exception ex)
{
ex.printStackTrace();
} } }
});
m3.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
FileDialog fd=new FileDialog(f,"保存文件对话框",FileDialog.SAVE);
fd.show();
}
});
m4.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
mn1.add(m1);
mn1.add(m2);
mn1.add(m3);
mn1.add(m4);
mn2.add(m5);
mn2.add(m6);
mb.add(mn1);
mb.add(mn2);
f.setMenuBar(mb);
f.show();
发表评论
-
关于数组和List之间相互转换的方法
2011-04-14 21:04 13811.List转换成为数组。( ... -
java的几种对象(PO,VO,DAO,BO,POJO)解释
2011-03-24 10:13 1344java的几种对象(PO,VO,DAO,BO,POJO)解释 ... -
switch
2010-12-02 19:02 11441 public class Switch { 2 ... -
优化的冒泡排序
2010-09-25 14:18 1368public static void bubble_Sort( ... -
java变量命名规则
2010-08-13 23:15 23711. 大小写有别,例如 a 和 A是两个变量 2. 长度任意 ... -
String.getBytes()的问题
2010-08-13 22:46 1647转载 http://java.chinaitlab.c ... -
tomcat 修改端口
2010-08-09 22:41 2005Tomcat端口修改: 在Tomcat安装目录下的conf目 ... -
tomcat 中增加用户名和密码
2010-08-09 22:41 1914原来的tomcat-user.xml是 <?xml ... -
Eclipse is running in a JRE, but a JDK is required
2010-07-28 09:30 15271 安装了maven插件,使用的时候老是有这样的提示: 08- ... -
安装Eclipse的maven插件
2010-07-27 11:01 1822Installing m2eclipse Core To i ... -
Attach Library Sources and Javadocs
2010-07-26 13:41 1919Attach Library Sources and Java ... -
maven 安装jaxb插件
2010-07-18 15:10 65651. Put your schemas ( ... -
java接受控制台输入
2010-07-16 13:45 2710import java.io.*; public c ... -
将xsd文件转化为java类
2010-07-10 15:31 2513最近有一个需求是把xsd文件中定义的数据类型转化为java类 ... -
jconsole attache sun glassfish
2010-06-13 17:04 1352To Set Up JConsole Connectivity ... -
suse下lamp的安装
2010-05-31 16:45 1565首先卸载suse缺省安装的apache2 主要是在网上看到人家 ... -
java的property配置文件的用法
2010-05-30 15:04 1143在我们平时写程序的时候,有些参数是经常改变的,而这种改变不是我 ... -
让ubuntu下的eclipse支持GBK编码
2010-05-30 14:38 1516今天,把windows下的工程导入到了Linux下eclips ... -
java路径中/的问题
2010-05-18 17:23 1365windows支持两种文件分隔符“/”和“\” 且使用“/”时 ... -
java中serializable是可以继承的
2010-05-16 21:58 5508import java.io.FileInputStream; ...
相关推荐
"java图形界面高级编程实例"这个资料很可能包含了对JFC和Swing的深入讲解,以及一系列实用的编程示例。 JFC是一个扩展了AWT(Abstract Window Toolkit)的框架,提供了更多的组件和功能。Swing是JFC的核心部分,它...
下面通过一个具体的示例来讲解Java图形界面编程框架的基本组成部分。 #### 三、示例代码解析 ##### 3.1 主类 (`主类`) ```java public class 主类 { public static void main(String[] arg) { new 窗体类().init...
《JAVA图形用户界面设计与实例》是陈家兴等作者在2004年出版的一本关于Java GUI设计的书籍。该书很可能涉及到使用Java编程语言开发图形用户界面(Graphical User Interface,简称GUI)的知识点,以及通过实例来加深...
Java图形界面编程主要涉及Java的AWT(Abstract Window Toolkit)和Swing库,这两个库提供了丰富的组件和功能,使得开发者能够创建出交互式的用户界面。本章主要讲解了以下几个核心知识点: 1. **Java图形界面设计的...
它是Java Foundation Classes (JFC)的一部分,提供了一套丰富的组件库,允许开发者创建功能完备、交互性强的图形用户界面(GUI)。本实例代码集主要围绕Java Swing进行讲解,通过具体的案例深入解析其使用方法。 在...
《Java Swing图形界面开发与案例详解》是一本深入讲解Java GUI编程的书籍,源代码提供了丰富的实例,适合Java初学者入门学习。Swing是Java AWT(Abstract Window Toolkit)库的扩展,它提供了更为丰富的组件和更现代...
主要内容: 1。应用AWT组件开发图形用户界面程序 2. Java事件处理 3。图形用户界面AWT组件学习 4。...实例丰富、经典,讲解详细,内容由浅入深、循序渐进,适合初学者,也适合有一定基础的用户
Java图形与动画编程实例是Java开发中的一个重要领域,它涵盖了如何在Java平台上创建交互式的、视觉上吸引人的应用程序。在Java 3D学习资料中,开发者可以深入理解如何利用Java API来构建三维图形和动态效果。这个...
在"Java+Swing图形界面开发与案例详解"这本书中,作者深入浅出地介绍了如何使用Swing来设计和实现GUI应用。 该书的实例代码包含了从第一讲到第八讲的源码,逐步引导读者从基础到进阶掌握Swing的使用。以下是这些讲...
Java图形用户界面(GUI,Graphical User Interface)设计是Java编程中的一个重要部分,它允许开发者创建具有视觉元素的交互式应用程序。在这个主题中,我们主要关注如何使用Java来构建GUI,以及实例代码的应用。 ...
本资料包"JavaSwing图形界面开发与案例详解"包含了对Swing的深入讲解以及相关的实例代码,旨在帮助开发者掌握Swing的基本用法和高级特性。 Swing的核心组件包括JFrame(窗口)、JPanel(面板)、JButton(按钮)、...
这两个chm文件“java图形界面设计卷AWT and Swing”很可能是详细讲解了这些概念和用法,包括实例代码和示例,对于想要深入学习Java GUI编程的人来说,是一份非常有价值的资源。虽然文件体积不大,但内容全面且深入,...
本教程将深入讲解java.awt的基础知识,并通过实例展示如何创建简单的GUI。 首先,`java.awt`包是Java标准版(J2SE)的一部分,它提供了构建GUI所需的基本组件、布局管理和图形绘制功能。AWT组件大致分为四类: 1. ...
Java图形界面教程——北航,主要探讨的是J2SE(Java 2 Standard Edition)平台下的GUI(图形用户界面)编程,以及与之相关的多线程技术。GUI是计算机软件与用户交互的重要方式,而多线程则在现代计算中扮演着不可或...
《Java Swing图形界面开发与案例详解》是由王鹏和何昀峰共同编著的一本专业书籍,ISBN号为978-7-302-18904-6。这本书深入浅出地介绍了使用Java Swing进行图形用户界面(GUI)开发的相关知识和技术。在Java编程领域,...
Java图形用户界面(GUI,Graphical User Interface)是Java编程中的一个重要组成部分,它允许开发者创建交互式的应用程序。GUI为用户提供了一种直观的方式来与程序进行交互,包括点击按钮、选择菜单项、拖动滑块等。...
Java Swing是Java编程语言中用于构建桌面应用图形用户界面(GUI)的一个库,它是Java Foundation Classes (JFC)的一部分。Swing提供了丰富的组件集,包括按钮、文本框、菜单等,使得开发者能够创建功能强大的、交互...
总之,《JavaSwing图形界面开发与案例详解》实例代码是学习Java GUI编程的宝贵资源,它将理论与实践结合,帮助开发者建立起强大的Swing应用开发能力。通过深入研究和实践这些实例,你可以逐步提升自己在图形界面设计...
通过以上步骤,你可以在Java中创建出丰富的图形界面。`GraphicsShapeDemo.java`文件可能包含了这些示例的完整实现,你可以根据需要扩展和调整代码以适应自己的项目需求。记住,Java 2D API提供了丰富的功能,可以...
JAVA Swing 是Java编程语言中用于构建桌面应用用户界面的一个图形组件库。它是Java Foundation Classes (JFC)的一部分,提供了一套丰富的组件,如按钮、文本框、滚动面板、菜单等,使得开发者能够创建出功能齐全且...