【发布时间】:2011-12-05 03:12:02
【问题描述】:
我有一个 JScrollPane,在它上面我有一个名为“panel1”的 JPanel。 我想在这个 JPanel 上绘制一些矩形。
我有一个名为 DrawRectPanel 的类,它扩展 JPanel 并完成所有绘图工作。 问题是,我尝试通过编写以下代码在 panel1 上绘制矩形:
panel1.add(new DrawRectPanel());
但是 panel1 上没有出现任何内容 然后我尝试了,就像对 DrawRectPanel 类的测试一样:
JFrame frame = new JFrame();
frame.setSize(1000, 500);
Container contentPane = frame.getContentPane();
contentPane.add(new DrawRectPanel());
frame.show();
这很有效,并且生成了图纸,但在单独的 JFrame 上 如何在 panel1 上绘制矩形? 提前致谢。
编辑: DrawRectPanel 的代码
public class DrawRectPanel extends JPanel {
DrawRectPanel() {
Dimension g = new Dimension(400,400);
this.setPreferredSize(g);
System.out.println("label 1");
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
System.out.println("label 2");
g.setColor(Color.red);
g.fillRect(20, 10, 80, 30);
}
}
屏幕上只打印标签 1
【问题讨论】:
-
不知道为什么,请在此处以sscce.org 形式发布(编辑您的问题)代码
-
如果您不显示
DrawRectPanel的代码,那么任何人都无法真正帮助您。不过我猜一下:DrawRectPanel 没有首选尺寸,是吗? -
一个 SSCCE 比更多的代码 sn-ps 有用得多。请阅读链接的文章。
标签: java swing jpanel draw graphics2d