一个可供Swing测试用的JPanel类

TestPanel


这里是把TestPanel作为JFrame的content pane来使用, 我使用的方式是写新类来继承TestPanel

功能:

1.测试组件

2.自定义paint(Graphics g) 方法

3.可便捷地使用Timer


package test.any;

import java.awt.Graphics;
import java.awt.RenderingHints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
/**
 * 可不使用Timer, 条件:(flag=0)
 * @author Linkeo
 *
 */
@SuppressWarnings("serial")
public abstract class TestPanel extends JPanel implements ActionListener{
	public int PANEL_WIDTH,PANEL_HEIGHT;
	public boolean INITIALIZED = false;
	public JFrame frame;
	public Timer timer;
	public TestPanel(int width, int height, int flag){
		PANEL_WIDTH = width;
		PANEL_HEIGHT = height;
		setBounds(0, 0, PANEL_WIDTH, PANEL_HEIGHT);
		frame = new JFrame("Test - Linkeo");
		frame.setContentPane(this);
		frame.pack();
		frame.setResizable(false);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
		if(flag>0)
			timer = new Timer(flag, this);
	}
	
	public void startTest(){
		frame.setVisible(true);
		frame.setSize(frame.getWidth()+PANEL_WIDTH-this.getWidth(), frame.getHeight()+PANEL_HEIGHT-this.getHeight());
		frame.setLocationRelativeTo(null);
		if(timer!=null)
			timer.start();
		else
			actionPerformed(null);
	}
	public abstract void init();
	@Override
	public void actionPerformed(ActionEvent e){
		if(!INITIALIZED){
			init();
			INITIALIZED = true;
		}
		run();
	}
	public abstract void run();
	@Override
	public void paint(Graphics g){
		super.paint(g);
	}
	public static void render(Graphics g){
		((java.awt.Graphics2D) g).setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
		((java.awt.Graphics2D) g).setRenderingHint(RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_QUALITY);
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值