- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的问题是我需要制作一个 GUI,在启动时显示登录屏幕,然后当用户成功登录时显示不同的屏幕。我已经访问了这个板上和其他板上的其他问题,对于所有这些问题,普遍的共识是,我应该在同一个 JFrame 中使用 2 个 JPanel,而不是使用两个不同的 JFrame。当用户登录时,要求登录详细信息的第一个 JFrame 的可见性将设置为 false,而第二个 JFrame 的可见性将变为 True。我在这里遇到的问题是我似乎无法将 2 个 JPanel 放置在同一位置。我正在使用 Jigloo 来开发 Swing。每当我放置第二个 JPanel 并将其可见性设置为 false 时,它的大小就会变为 0,0。我尝试将组件放在第二个面板上,然后设置我的首选尺寸,然后将可见性切换为 false,但是尽管第一帧的可见性仍然为 true 并且尺寸正确,但两个面板在执行期间都消失了。请帮忙!
最佳答案
我回答了一个类似的问题,其中您在单个 JFrame 中有多个面板..并且根据用户操作执行的面板被替换
Can't seem to get .remove to work
根据您的查询为程序设置皮肤:
public class Main extends JFrame implements ActionListener
{
private JPanel componentPanel = null;
private JPanel loginPanel = null;
private JLabel loginLabel = null;
private JPanel optionPanel = null;
private JLabel optionLabel = null;
private JButton loginButton = null;
public JPanel getComponentPanel()
{
if(null == componentPanel)
{
componentPanel = new JPanel();
GridBagLayout gridBagLayout = new GridBagLayout();
componentPanel.setLayout(gridBagLayout);
GridBagConstraints constraint = new GridBagConstraints();
constraint.insets = new Insets(10, 10, 10, 10);
loginPanel = new JPanel();
constraint.gridx = 0;
constraint.gridy = 0;
loginPanel.setMinimumSize(new Dimension(100, 50));
loginPanel.setPreferredSize(new Dimension(100, 50));
loginPanel.setMaximumSize(new Dimension(100, 50));
loginPanel.setBorder(
BorderFactory.createLineBorder(Color.RED));
loginLabel = new JLabel("Login Panel");
loginPanel.add(loginLabel);
componentPanel.add(loginPanel, constraint);
optionPanel = new JPanel();
constraint.gridx = 0;
constraint.gridy = 0;
optionPanel.setMinimumSize(new Dimension(100, 50));
optionPanel.setPreferredSize(new Dimension(100, 50));
optionPanel.setMaximumSize(new Dimension(100, 50));
optionPanel.setBorder(
BorderFactory.createLineBorder(Color.BLUE));
optionLabel = new JLabel("Option Panel");
optionPanel.add(optionLabel);
componentPanel.add(optionPanel, constraint);
loginButton = new JButton("Login");
constraint.gridx = 0;
constraint.gridy = 1;
loginButton.addActionListener(this);
componentPanel.add(loginButton, constraint);
}
return componentPanel;
}
public void actionPerformed (ActionEvent evt)
{
loginPanel.setVisible(false);
loginButton.setEnabled(false);
optionPanel.setVisible(true);
}
public static void main(String[] args)
{
JFrame frame = new JFrame();
Main main = new Main();
frame.setTitle("Simple example");
frame.setSize(200, 200);
frame.setLocationRelativeTo(null);
frame.setContentPane(main.getComponentPanel());
frame.setVisible(true);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
关于java - 使用 Jigloo Swing 在同一位置放置 2 个 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16385109/
我们进退两难;使用 Matisse 或 Jigloo 开发桌面应用程序.. Matisse 有这个XML 表单文件,我们害怕以后维护,我们甚至不知道MyEclipse 是否进一步支持Matisse,甚
我多年来一直使用 Eclipse 的 Jigloo 插件(GUI 构建器)。现在我找不到与 Eclipse Luna 兼容的更新版本,并且 Luna 无法识别我的旧版本。另外,cloudgarden.
我正在尝试使用 Jigloo 在 SWT 中制作 GUI,当我想将图像设置为标签或按钮时,我可以在预览 Pane 中看到它们。但是,当我编译并运行它时,它会抛出 SWTResourceManager.
我的问题是我需要制作一个 GUI,在启动时显示登录屏幕,然后当用户成功登录时显示不同的屏幕。我已经访问了这个板上和其他板上的其他问题,对于所有这些问题,普遍的共识是,我应该在同一个 JFrame 中使
使用运行按钮测试 GUI,出现错误: java.lang.ClassNotFoundException: com.jgoodies.looks.plastic.Plastic3DLookAndFeel
我是一名优秀的程序员,十分优秀!