swing绘制自定义图形的一个简单例子。
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
* JPanel类具有两个很有用的特征:
* 1、包含一个可以用于绘图的表面
* 2、本身也是一个容器,因此可以用来放置标签、按钮等组件。
*
* 要在JPanel上绘图,可以定义一个新类继承JPanel,然后覆盖paintComponent方法。
* paintComponent方法是定义在JComponent类中,该类是所有非窗口Swing组件的超类。
* paintComponent方法有一个Graphics类型的参数,绘图功能的实现需要通过Graphics对象。
* Graphics类中包含绘制图案、图像和文本的方法。
*
*/
public class DrawLinePanel extends JPanel {
public DrawLinePanel() {
repaint();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawLine(10, 20, 300, 250);
}
public static void main(String args[]) {
final int jfw = 300;
final int jfh = 200;
JFrame jf = new JFrame("DrawRandomLinePanel");
jf.setVisible(true);
jf.setSize(jfw, jfh);
// set location to the screen center
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension dm = tk.getScreenSize();
int lx = (int) (dm.getWidth() - jfw) / 2;
int ly = (int) (dm.getHeight() - jfh) / 2;
jf.setLocation(lx, ly);
jf.add(new DrawLinePanel());
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}