当前位置: 代码迷 >> Eclipse >> JPanel重绘后不显示,但是拉伸一下子窗体就会显示出来
  详细解决方案

JPanel重绘后不显示,但是拉伸一下子窗体就会显示出来

热度:34   发布时间:2016-04-23 00:43:17.0
JPanel重绘后不显示,但是拉伸一下窗体就会显示出来
通过点击按键实现计数,但是计数不会正确显示出来,拉伸了窗体后才会显示出来。。。。求大神帮助。。程序代码如下:

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class java1class extends JFrame {

int i = 0;
JButton jb = new JButton("计数");
DrawPanel dp = new DrawPanel();

public java1class() {
super();
setLayout(new BorderLayout());
this.setSize(300, 300);// 设置窗体大小
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置窗体关闭模式
add(jb, BorderLayout.NORTH);
add(new DrawPanel(), BorderLayout.CENTER);
this.setTitle("绘图实例1");// 设置窗体标题
jb.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
i = i + 1;
// setVisible(false);
dp.repaint();
// setVisible(true);

}
});
}

// 初始化方法

public static void main(String[] args) {
new java1class().setVisible(true);
}

// 创建绘图面板
class DrawPanel extends JPanel {

public void paint(Graphics g) {
super.paint(g);
g.drawString("第" + i + "次计数", 100, 50);
}
}
}

------解决方案--------------------
add(new DrawPanel(), BorderLayout.CENTER);
换成
add(dp, BorderLayout.CENTER);
就行了;