[英]Java add a jpanel in a jtabbed pane in a jframe from another class file
[英]Java, add to jpanel from another class to jframe
我有两个类,如下所示:
public class Board extends JFrame {
private JFrame frame;
public Board() {
JFrame frame = new JFrame();
frame.add(this.createContentPane());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
public JPanel createContentPane (){
JPanel totalGUI = new JPanel();
JPanel mainPanel = new JPanel(new GridLayout(3, 3));
JPanel red = createSquareJPanel(Color.red, 50);
JPanel blue = createSquareJPanel(Color.blue, 50);
mainPanel.add(red);
mainPanel.add(blue);
totalGUI.add(mainPanel);
totalGUI.setOpaque(true);
return totalGUI;
}
private JPanel createSquareJPanel(Color color, int size)
{
Rectangle rect = new Rectangle(color, size);
return rect;
}
}
public class Rectangle extends JPanel {
public Rectangle(Color color, int size) {
this.setBackground(color);
this.setMinimumSize(new Dimension(size, size));
this.setMaximumSize(new Dimension(size, size));
this.setPreferredSize(new Dimension(size, size));
}
}
问题是当方法“createSquareJPanel”创建矩形object时,gridlayout中只出现了2的第一个元素。 所以我只看到红色矩形。
如果我将来自 Rectangle class 的代码放入 createSquareJPanel 并在这里创建一个 JPanel,那么它会按预期工作。 我不明白为什么这段代码只出现一个元素。
你的代码对我来说很好。 我已经重新编写它以进行测试,但它是一个克隆。 https://github.com/amaurylrd/stackoverflow-jpanel
此外,class 矩形不应该出现在 Board 文件中,但我认为你可以在这里发布。 我想知道为什么这个 class 扩展了 JFrame 但也有 JFrame 属性。 顺便说一句,那些是正方形,对吧?
我想让你看到,totalGUI 也几乎没用,你可以使用默认的 contentPane 或你创建的 mainPanel,它单独工作正常。 默认布局是 FlowLayout 的事实。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.