java - eclipse ide java没有加载jpanels
问题描述
所以我的问题很奇怪。所以我试图在eclipse ide中编写一个java程序。我添加了一个 JFrame 和多个 JPanel。您可以通过将一个面板设置为不可见而将另一个面板设置为可见的按钮来浏览 JPanel,您明白了。但是,过了一段时间,这种情况开始发生:当我按下一个按钮时,正确的 JPanel 被设置为可见,我可以看到它,但它完全是空的。有时它的内容显示正确,但这是相当不一致的。
正如我所说:有时会发生,有时不会发生。我会启动程序并关闭它 5 次,第 6 次它终于可以工作了。我不认为代码是必需的(因为它都是正确的,因为毕竟它有时确实有效),但如果你想看到它随时问。我的 Eclipse 工作区位于 SSD 上的 C 驱动器上,并且不是太满。它还剩下 250 场演出中的 100 场。提前感谢您的时间和帮助!
编辑:所以继承人的代码示例。我试图在两个 JPanel 之间切换:“主”面板
Var.menuPanel = new JPanel();
Var.jf1.add(Var.menuPanel);
Var.menuPanel.setBounds(0, 0, Var.screenwidth, Var.screenheight);
Var.menuPanel.setLayout(null);
Var.menuPanel.setVisible(true);
Var.menuPanel.revalidate();
Var.menuPanel.repaint();
这一切都很好。切换到其他面板的按钮:
Var.editCourse = new JButton("Edit");
Var.menuPanel.add(Var.editCourse);
Var.editCourse.setBounds(550, 120, 200, 50);
Var.editCourse.setVisible(true);
Var.editCourse.addActionListener(handler);
Var.editCourse.setBackground(Color.YELLOW);
其他 JPanel + UI 元素
Var.editCoursePanel = new JPanel();
Var.jf1.add(Var.editCoursePanel);
Var.editCoursePanel.setBounds(0, 0, Var.screenwidth, Var.screenheight);
Var.editCoursePanel.setLayout(null);
Var.editCoursePanel.setVisible(false);
Var.editCoursePanel.revalidate();
Var.editCoursePanel.repaint();
Var.editCourseToMenu = new JButton("Back");
Var.editCoursePanel.add(Var.editCourseToMenu);
Var.editCourseToMenu.setVisible(true);
Var.editCourseToMenu.setBounds(550, 400, 200, 50);
Var.editCourseToMenu.addActionListener(handler);
Var.editCourseSelection = new JComboBox<String>(JSONHandler.courses);
Var.editCoursePanel.add(Var.editCourseSelection);
Var.editCourseSelection.setBounds(550, 200, 200, 50);
Var.editCourseSelection.setVisible(true);
Methods.setArrowBounds(Var.editCourseSelection);
Var.editCourseSelection.setSelectedItem("Edit.");
Var.submitCourse = new JButton("Continue");
Var.editCoursePanel.add(Var.submitCourse);
Var.submitCourse.setBounds(550, 300, 200, 50);
Var.submitCourse.setVisible(true);
Var.submitCourse.addActionListener(handler);
AcionHandler 中的行:
else if(e.getSource() == Var.editCourse) {
MenuHandler.showEditCoursePanel();
}
showEditCoursePanel 方法:
public static void showEditCoursePanel() {
Var.menuPanel.setVisible(false);
Var.editCoursePanel.setVisible(true);
}
哦,而且,有时当它不加载时,旁边有一个 JScrollPane 的滚动条,正如你所看到的,它甚至从未被提及。
编辑2:好的,我找到了问题的根源。当我将原始 JPanel 添加到 JFrame 并使用它时一切正常,我当然不能滚动。但是当我添加 JScrollPane 时,newCoursePanel 根本不会出现。除了带有滚动条的面板之外,其他所有内容现在都可以流畅地工作。这是我正在谈论的 nwCoursePanel 的代码:
Var.newCoursePanel = new JPanel();
Var.newCoursePanel.setBounds(0, 0, Var.screenwidth, Var.screenheight);
Var.newCoursePanel.setLayout(null);
Var.newCoursePanel.revalidate();
Var.newCoursePanel.repaint();
Var.newCoursePane = new JScrollPane(Var.newCoursePanel);
Var.newCoursePane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
Var.newCoursePane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
Var.newCoursePane.setVisible(false);
Var.jf1.add(Var.newCoursePane);
我不知道如何让它工作。在显示面板我只是Var.menuPanel.setVisible(false)
和Var.newCoursePane.setVisible(true)
。
解决方案
推荐阅读
- django - 在 django 中为 geojson 数据创建 API
- flowtype - 无法返回`
` 因为 `React.Element` [1] 中缺少属性 `client` 但存在于 `Client` 中 - javascript - 如何将 JSON 对象转换为日期时间
- sql - 如何在 JPQL 中将日期时间转换为日期?
- c++ - 将字节数组复制到未对齐的结构
- jquery - 将可见项目移动到索引的开头
- matplotlib - Matplotlib 热图大小不正确
- c - 我可以更有效地计算 2ⁿ 的数字总和吗?
- c# - 多选下拉项目在更新时自动选择属性
- django - 如何为 Angular 和 django 设置 Nginx 服务器