我的java学习笔记(22)关于在框架中显式信息

来源:互联网 发布:通话变声软件 编辑:程序博客网 时间:2024/06/06 11:41

1.JFrame的结构相当复杂,有四层面板。其中Swing程序员最关心的是内容窗格。

2.绘制一个组件,需要定义一个扩展JComponent的类,并覆盖其中的paintComponent方法。

class Exp extends JComponent{public void paintComponent(Graphics g){...}}

3.paintComponent方法有一个Graghics类型的参数,这个参数保存着用于绘制图像和文本的设置。

4.在java中,所有绘制都必须使用Graphics对象。

5.无论何种原因,只要窗口需要重新绘制,事件处理器就会通告组件,从而引发执行所有组件的paintCpmponent方法,所以一定不要自己调用该方法。

6.显式文本使用Graphics类中的drawString方法。

g.drawString(test,x,y);

7.在框架中填入一个或多个组件时,如果你只想使用它们的首选大小,可以调用pack方法,而不是setSize方法。

实例代码

测试类

import java.awt.EventQueue;import javax.swing.JFrame;public class test {public static void main(String[] args){EventQueue.invokeLater(new Runnable(){public void run(){JFrame frame = new TextFrame();frame.setTitle("test");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}});}}

框架类

import javax.swing.JFrame;public class TextFrame extends JFrame{public TextFrame(){add(new TextStr());pack();}}

绘制类

import java.awt.Color;import java.awt.Dimension;import java.awt.Graphics;import javax.swing.JComponent;public class TextStr extends JComponent {public static final int MESSAGE_X = 75;public static final int MESSAGE_Y = 50;private static final int DEFAULT_WIDTH = 300;private static final int DEFAULT_HEIGHT = 200;public void paintComponent(Graphics g){g.setColor(Color.RED);g.drawString("你好啊啊啊啊!!", MESSAGE_X, MESSAGE_Y);}public Dimension getPreferredSize(){return new Dimension(DEFAULT_WIDTH,DEFAULT_HEIGHT);}}

输出结果


1 0