【发布时间】:2012-07-07 17:48:13
【问题描述】:
将具有图形的JPanel 添加到JFrame 时,它工作正常。但是当我尝试添加一个JPanel 并在其中添加了另一个带有图形的JPanel 时,它没有显示在JFrame 中。请看下面的代码
package sample;
import java.awt.Graphics;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main extends JFrame{
public static void main(String[] args) {
new Main();
}
public Main(){
setTitle("Sample");
setVisible(true);
setSize(500,500);
setDefaultCloseOperation(EXIT_ON_CLOSE);
add(new SamplePanel2());
}
}
class SamplePanel2 extends JPanel{
public SamplePanel2(){
add(new JButton("Hi"));
add(new SamplePanel());
}
}
class SamplePanel extends JPanel {
public SamplePanel(){
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawString("HHHHHHHHHHHH", 100, 100);
}
}
【问题讨论】:
-
只需覆盖 getPreferredSize() 并使其返回一些值,例如
return new Dimension(300, 300);,在您的SamplePanel Class内 -
请参阅“如何将 JPanel 类添加到 netbeans 中的 JFrame 表单类中?”在 stackoverflow 上了解更多信息
-
@MaVRoSCy : 伙计,你只是忘了放评论的链接,就像为了在这里发表评论,把方括号 [] 放在这里,就像 [这里] 后面跟着括号,就像 [ here]() 并在括号内粘贴 URL。
标签: java swing jpanel paintcomponent