为了账号安全,请及时绑定邮箱和手机立即绑定

JPanel重绘问题

JPanel重绘问题

天涯尽头无女友 2019-08-23 10:13:31
JPanel重绘问题我有一个JFrame,其中包含2个JPanel子类和BorderLayout中的2个JLabel。其中一个JPanel包含JButtons,另一个用于显示图形。JLabels位于北部和南部,西部是JPanel按钮,中间是JPanel。显示JPanel需要不断刷新,所以我通过swing计时器生成的动作事件调用它的repaint()方法。我也覆盖它的paintComponent()方法来做我的绘图。而不是显示我绘制的内容,“JFrame的内容”被绘制到显示JPanel上。我知道在完成绘图之前,我可以通过使用g.fillRect()或super.paintComponent()简单地“清除”显示JPanel。我只是好奇为什么会这样。我正在使用jdk 1.6u27。下面是我的代码:package test;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class Main {public static void main(String[] args) {     Simulation sim = new Simulation();     }}class Simulation extends JFrame {     public JLabel state;     private JLabel id;     private ButtonPanel control;     private Display display;     public Simulation() {         id = new JLabel("Test");         state = new JLabel("Test");         control = new ButtonPanel();         display = new Display(this);         this.setLayout(new BorderLayout());         this.add(id, BorderLayout.NORTH);         this.add(control, BorderLayout.WEST);         this.add(display, BorderLayout.CENTER);         this.add(state, BorderLayout.SOUTH);         this.setSize(500, 600);         this.setVisible(true);         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     }     public ButtonPanel getControl() {         return this.control;     }}class ButtonPanel extends JPanel implements ActionListener {     public JButton b[] = new JButton[8];     public boolean bp[] = new boolean[8];     public ButtonPanel() {         this.setLayout(new GridLayout(8, 1));         for (int i = 0; i < b.length; i++) {             b[i] = new JButton(""+i);             b[i].addActionListener(this);             bp[i] = false;             this.add(b[i]);         }     }
查看完整描述

3 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

我知道,我不知道有这样的选择,谢谢你的解释。但我的问题实际上是JFrame的内容被绘制到显示JPanel上。例如,顶部标签和侧面按钮被绘制到显示器JPanel上,以及那些黑色线条

查看完整回答
反对 回复 2019-08-23
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

一般来说,你应该打电话super.paintComponent(g)或“容器的轻量级后代不会出现。

查看完整回答
反对 回复 2019-08-23
  • 3 回答
  • 0 关注
  • 645 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信