- 浏览: 578360 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (206)
- Flask (1)
- JavaScript (3)
- Core Java (41)
- XML (1)
- Oracle (11)
- 软件安装及环境配置 (0)
- 其它 (9)
- 面试/笔试 (5)
- 项目 (0)
- JDBC (11)
- Servlet (4)
- MySql (4)
- JNDI (0)
- Hibernate (11)
- Java模式和构架设计 (0)
- Web设计 (22)
- JSP (8)
- Struts (13)
- Tomcat (2)
- Marven (2)
- SVN (2)
- Swing/AWT (1)
- jQuery (2)
- ExtJS (8)
- Python (22)
- Flex (1)
- Django (7)
- 算法 (5)
- English (1)
- Twisted (1)
- Linux (3)
- Rails (1)
- SVG (3)
- PostgreSQL (1)
在Java中,框架被设计为放置组件的容器,所以并不直接将信息绘制在里面,而是把信息绘制在一个面板中,再将这个面板添加到框架中。
JFrame中,有四层面板:根窗格、层级窗格、玻璃窗格和内容窗格。前三个用来组织菜单栏和内容窗格以及实现观感,内容窗格则用来放置组件。
Container contentPane = frame.getContentPane(); Component c = ...; contentPane.add(c);
上面是JDK1.4以前的版本的写法,在JDK1.5中直接用:
frame.add(c);
面板JPanel也是一个容器,可以放置按钮、滑块等组件,它也可以直接绘图。
在面板上直接绘图的方法:(1)继承JPanel类;(2)覆盖paintComponent方法。
paintComponent方法定义在JComponent类中,这个类是所有非窗口Swing组件的超类。该方法有一个Graphics类型的参数。Graphics对象保存着用于绘制图像和文本的设置。
在Java中,所有的绘图都必须通过Graphics对象,其中包括绘制图案、图像和文本的方法。
在应用程序需要重新绘图的时候,这个方法将被自动地调用,不需要自己调用。如果需要强制刷新屏幕,可调用repaint方法。
例子:
import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JPanel; public class NotHelloWorld { public static void main(String[] args){ NotHelloWorldFrame frame = new NotHelloWorldFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } /** * 这是一个包含显示信息面板的框架 */ class NotHelloWorldFrame extends JFrame { private static final int DEFAULT_WIDTH = 500; private static final int DEFAULT_HEIGHT = 300; public NotHelloWorldFrame() { setTitle("NotHelloWorld"); setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); //给框架增添面板 NotHelloWorldPanel panel = new NotHelloWorldPanel(); add(panel); setVisible(true); } } /** * 这是一个显示文字信息的面板 */ class NotHelloWorldPanel extends JPanel { private static final int MESSAGE_X = 75; private static final int MESSAGE_Y = 100; @Override protected void paintComponent(Graphics g) { // TODO Auto-generated method stub super.paintComponent(g); g.drawString("NOt Hello World", MESSAGE_X, MESSAGE_Y); } }
注意在绘制自己的内容时,需在paintComponent方法中调用super.paintComponent(g);
发表评论
-
线程的停止
2010-12-24 00:30 1139既然stop()是不被推荐的 ... -
JDK环境变量的配置
2010-12-19 11:03 965JDK环境变量的配置 (1)JAVA_HOME C:\Pro ... -
自定义异常
2010-12-10 12:09 1200内置异常不可能始终足以捕获所有错误,因此需要用户自定义的异常类 ... -
编写异常的规范
2010-12-10 11:35 1159错误的编码: OutputStreamWriter out ... -
内部类
2010-12-06 16:51 1127内部类详解 1、定义 一个类的定义放在另一个类的内部,这个 ... -
抽象类和接口的区别
2010-12-06 16:47 1054含有abstract修饰符的class 即为抽象类,abstr ... -
人工抛出异常
2010-12-06 16:35 2090Java异常类对象除在程序执行过程中出现异常时由系统自动生成并 ... -
Java异常处理机制
2010-12-06 16:30 10511.Java程序的执行过程中如出现异常,会自动生成一个异常类对 ... -
Java的垃圾回收原理与机制
2010-12-06 16:12 1157JAVA中的对象是在堆上分配,而在堆上分配存储空间的方式是昂贵 ... -
Comparable和Comparator接口
2010-12-06 15:13 1700当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comp ... -
手工打包JAR
2010-12-06 12:57 22291.把准备打包的.java文件集中到一个目录中例如c:\sou ... -
Java集合类
2010-12-03 14:26 1291Collection接口 Collection是 ... -
Java Socket 初步详解
2010-11-08 09:05 1068网络编程的基本模型就 ... -
Java中newString(abc)创建几个对象的解释
2010-11-02 10:04 1889String str=new String("abc ... -
Java日期处理
2010-10-19 17:17 14161.有关日期时间的类 1.java.util.Date ... -
线程同步
2010-10-17 21:17 1080一个方法被synchronized修饰:当程序执行此方法时,当 ... -
线程的状态及生命周期
2010-10-17 20:29 1508线程共有6种状态;在某一时刻只能是这6种状态之一。这些状态由T ... -
sleep()、wait()、yield()、join()方法 浅析
2010-10-17 18:54 1093线程退出最好自己实现,在运行状态中一直检验一个状态,如果这 ... -
RandomAccessFile类的应用
2010-10-17 10:39 1770文件存取通常是顺序的,每在文件中存取一次,文件的读 ... -
利用Externalizable接口实现对象的自定义序列化
2010-10-17 10:12 1302SerializedUser.java import jav ...
相关推荐
在Java世界中,SWING是构建图形用户界面的重要工具,它提供了大量的组件,如按钮、文本框、菜单、滚动面板等,这些组件使得开发者能够创建出复杂的窗口应用。SWING基于AWT(Abstract Window Toolkit)框架,但在许多...
Java图形用户界面(GUI,Graphical User Interface)是Java编程语言中用于创建互动式、可视化应用的核心组件。GUI允许用户通过鼠标和键盘等输入设备与程序进行交互,提供了丰富的控件和布局管理器来构建复杂的窗口...
在深入分析《Java程序中图形界面案例的分析与研究.pdf》文档内容的基础上,我们可以提取以下知识点: 1. Java语言的图形用户界面设计: Java是一种广泛使用的编程语言,其拥有强大的图形用户界面(Graphical User ...
在本实验报告中,主题是“Java实验报告之图形用户界面程序设计与AWT/Swing组件”,主要目标是让学生熟悉Java GUI设计原理、程序结构,掌握AWT和Swing组件的功能,以及学会应用这些组件来设计应用程序,特别是实现一...
《Java2图形设计卷II:Swing》是一本专注于Java GUI编程的专业书籍,其配套光盘源码提供了丰富的示例代码,帮助读者深入理解和实践Swing库在Java2平台中的应用。Swing是Java Standard Edition (Java SE) 中用于构建...
在Java 2图形设计卷Ⅱ:SWING(下)中,我们可以深入探讨Swing组件、布局管理、事件处理以及Swing的高级特性。 1. **Swing组件**: - JFrame:这是Swing中的顶级容器,通常作为应用程序的主窗口。它包含了JFrame内的...
在Java图形界面迷宫问题中,使用了Swing库中的JPanel、JButton、JLabel等组件来实现图形界面。JPanel用于创建面板,JButton用于创建按钮,JLabel用于创建标签。 迷宫问题 迷宫问题是一种经典的算法问题,目的是...
一个图形用户界面程序,包含两个按钮,一个信息标签(label)和一个显示面板,两个按钮分别为“掷色子”和“移动”,在显示面板中显示一个小人(用小圆以及线绘制),随机设定小人的初始位置,当点击“掷色子”按钮...
在 Java 中,图形用户界面是通过 AWT(Abstract Window Toolkit)和 Swing 两个组件来实现的。AWT 是 Java 的原始图形用户界面工具包,而 Swing 是基于 AWT 的轻量级组件,提供了更加灵活和强大的图形用户界面开发...
Java图形界面五子棋程序是一种基于Java编程语言开发的交互式游戏应用,它允许两位玩家在二维棋盘上进行对弈,目标是通过放置棋子,先形成任意方向上的五子连线来赢得比赛。这个程序通常会利用Java的Swing或JavaFX库...
6. **组件容器(Container)**:组件都包含在容器中,如 JFrame 和 JApplet,它们负责管理子组件的布局和显示。 7. **对话框(Dialogs)**:SWING提供了各种对话框,如JOptionPane,用于提示信息、确认操作或输入...
Java图形设计是Java编程中的一个重要领域,主要涉及如何在Java应用程序中创建和管理用户界面。本主题涵盖了两个关键部分:AWT(Abstract Window Toolkit)和Swing,它们都是Java提供的用于构建GUI(图形用户界面)的...
在这个特定的程序中,Swing被用来创建一个显示更新进度和状态的界面,使用户了解更新的状态,如“检查更新”、“下载中”和“安装完成”。 Socket编程在Java中用于网络通信,允许两个或多个应用程序通过网络交换...
Java Swing是Java 2平台(J2SE)的一部分,它为开发人员提供...这个压缩包提供的资源对于那些想要深入理解并熟练掌握Swing的人来说是一份宝贵的资料,可以系统地学习Swing的各种特性和最佳实践,提升Java图形设计能力。
(4)控件面板(JPanel):用于显示当前颜色、画笔大小、橡皮大小等信息。 2. Java 画图板程序的实现 Java 画图板程序的实现主要涉及到以下几个方面: (1)绘图工具的实现:使用 Java 的图形库(java.awt)和...
通过本资源,初学者能够更加清晰地理解Java图形界面的设计和实现过程,并在实践中遇到问题时,能够找到相应的解决方法。随着Java图形界面开发技能的提升,开发者将能够设计和实现更加复杂、功能丰富的应用程序。