0 java swing layout-manager null-layout-manager cardlayout
每当我将JFrame的布局更改为null,而不是实际设置它时,JPanels永远不会被添加.我不确定为什么,我没有找到关于这个主题的足够信息.这是我的JFrame类:
public class Frame extends JFrame
{
public Frame () {
super("frame");
this.setLayout(null);
this.setIconImage(Toolkit.getDefaultToolkit().getImage(Main.class.getProtectionDomain().getClassLoader().getResource("icon.png")));
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(1250, 550);
this.getContentPane().setBackground(Color.GRAY);
}
Run Code Online (Sandbox Code Playgroud)
}
这是我实例化JFrame的地方:
public static Frame frame;
public static void initialize()
{
frame = new Frame();
CardLayout cardLayout = new CardLayout();
PanelContainer panelContainer = new PanelContainer(cardLayout);
panelContainer.setLayout(cardLayout);
JPanel panel1 = new Panel1();
JPanel panel2 = new Panel2();
panelContainer.add(panel1, "panel1");
panelContainer.add(panel2, "panel2");
cardLayout.show(panelContainer, "panel1");
gui.add(panelContainer, null);
gui.validate();
gui.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)
这是面板容器类:
public class PanelContainer extends JPanel
{
public PanelContainer(CardLayout cardLayout)
{
super(cardLayout);
this.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
最后这里是面板1和面板2,它们具有相同的代码:
public class Panel1 extends JPanel
{
public Panel1 ()
{
super();
this.setBackground(Color.GRAY);
addButtons(this);
}
public static void addButtons(FrontPanel panel)
{
JButton testButton = new JButton(new ImageIcon(Images.TestImage);
testButton (30,30);
testButton (0,0);
panel.addtestButton
}
}
Run Code Online (Sandbox Code Playgroud)
感谢您的时间和帮助!
几个问题:
顺便说一句,我没有看到你在JFrame中添加任何内容的位置.而你似乎正在使用一个永远不会声明或初始化的变量gui.你的Frame变量被命名为frame - can gui和frame是同一个东西吗?你有没有为我们编写代码?
编辑
......以及过度使用静态"一切"; 我是java的新手,我正在努力改善静态的使用,问题是我并不完全知道它的含义.
这就是为什么我强烈建议您在尝试创建复杂的GUI 之前研究Java面向对象的编程概念.否则,您可能会将购物车放在马前.
另一件事是我不使用布局,因为我想要对所有东西进行大量控制,
这正是布局经理为您所做的事情.你认为null布局效果更好,这标志着你是一个尚未掌握布局管理器功能的新手.一旦你这样做,你就会明白为什么这个网站上关于null布局的大多数类似问题会得到与我类似的响应.
在oracle文档中查找我没有找到可以让我这样做的布局.也许你可以建议我使用一些东西?
您通常不会只使用一个布局.我经常使用程序员友好的布局管理器来嵌套JPanels,并且通过这种方式,我可以构建令人满意的并且易于调整和增强GUI.至于建议 - 我不知道你的程序应该如何,所以我目前无法提供任何具体的记录.
运气!
| 归档时间: |
|
| 查看次数: |
175 次 |
| 最近记录: |