java中按钮控制重绘面板

来源:互联网 发布:windows kit 8.1 编辑:程序博客网 时间:2024/04/27 21:26

结果展示:
这里写图片描述
这里写图片描述

源码:
`package demo01;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JPanel;

/**
* 测试:按钮控制绘画图形
* @author Smilexs
*
*/
public class DemoPanel implements ActionListener{

private JFrame frame = null;private JPanel drawArea = null;//绘画区域private Button btnNext = null;//显示下一个绘画的图private static final int DRAW_LINE=0;//画直线private static final int DRAW_RECT=1;//画矩形public DemoPanel() {    frame = new JFrame("测试面板");    drawArea= new TestPanel(DemoPanel.DRAW_LINE);    btnNext =new Button("下一个");    /**按钮监听*/    btnNext.addActionListener(this);    frame.setLayout(new BorderLayout());    frame.add(drawArea,BorderLayout.CENTER);    frame.add(btnNext,BorderLayout.SOUTH);    frame.setBounds(0,0,500,500);    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);    frame.setVisible(true);}/** * 绘画面板 * @author lenovo * */class TestPanel extends JPanel{    private int drawType=0;//绘画类型    public TestPanel(int drawType){        this.drawType=drawType;    }    @Override    public void paint(Graphics g) {        super.paint(g);//画笔        switch (drawType) {        case 0:            g.drawLine(0, 0, 100, 100);            break;        case 1:            g.drawRect(0, 0, 250, 250);            break;        default:            break;        }    }}@Overridepublic void actionPerformed(ActionEvent e) {    if(e.getSource()==btnNext){        frame.remove(drawArea);        drawArea = new TestPanel(DemoPanel.DRAW_RECT);        frame.add(drawArea,BorderLayout.CENTER);        /** 重点:  一定要 更新界面!!!*/        frame.revalidate();    }}public static void main(String[] args) {    new DemoPanel();}

}
`

0 0
原创粉丝点击