在我的应用程序中(使用java),按下一个按钮,然后打开一个面板,上面有一个图形。要创建图形,我使用的是图形/绘画。但是,我无法显示图形。现在,我只想画一个圆圈(而不是实际的图形)。如果有人能解释我做错了什么,我将不胜感激。
public class SeeProgressHandleClass extends JPanel{
public SeeProgressHandleClass(JFrame window) {
this.window = window;
}
public void mouseClicked(MouseEvent e) {
panel = new JPanel();
fillPanel();
window.add(panel);
panel.setBackground(Color.white);
panel.setBounds(50, 40, 1100, 660);
}
public static void fillPanel() {
Graph graph = new Graph();
panel.add(graph);
}
}
public class Graph extends JPanel{
public void paintComponent(Graphics g) {
super.paintComponent(g);
this.setBackground(Color.white);
g.setColor(Color.green);
g.fillOval(50, 50, 50, 50);
}
}
答案 0 :(得分:1)
Graph
应提供preferredSize
提示,这将允许布局管理员更好地确定组件应如何显示。考虑覆盖getPreferredSize
this.setBackground(Color.white);
内调用paintComponent
,每次执行此操作时,都会触发潜在的重新绘制请求,最终会占用所有CPU周期。在构造函数Graph
添加到JPanel
中,然后将其添加到屏幕上...不确定原因,但这会让它更加混乱window.add(panel);
之后,所有window.revalidate()
和window.repaint()
都会触发新的布局和绘制传递