- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了我的家庭作业加分,我创建了一个 JTabbedPane 并添加了两个 Jpanel。我觉得我已经很接近了,但它仍然无法编译。当我运行它时,两个 JPanel 都会打开,但 JTabbedPane 不会。我收到很多未知来源错误。我怀疑此时我的问题出在 JPanel 本身,因为它们开始是 JFrames,而我已经尝试(我认为未成功)将 JFrames 转换为 JPanel。
JTabbedPaneAssignment 应该创建 JTabbedPane 并在两个 Pane 中填充一个选项卡上的应用程序 DayGui 和另一个选项卡上的 OfficeAreaCalculator。我在这里只包含 JTabbedPaneAssignment 和 DayGui 类。如果它的代码太多,我深表歉意,我已经删掉了很多我认为无关的东西,但可能还是太多了。
这里是调用类 JTabbedPaneAssignment
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class JTabbedPaneAssignment extends JPanel
{
public JTabbedPaneAssignment()
{
//super(new GridLayout(1, 1));
JTabbedPane tabbedPane = new JTabbedPane();
DayGui pnlDay = new DayGui();
OfficeAreaCalculator pnlOffice = new OfficeAreaCalculator ();
this.add(tabbedPane);
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
tabbedPane.add(panel1,"First panel");
tabbedPane.add(panel2,"Second panel");
//JComponent panel1 = makeTextPanel("Pane #1");
panel1.setPreferredSize(new Dimension(300, 150));
tabbedPane.addTab("DayGui", panel1);
tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);
//JComponent panel2 = makeTextPanel("Pane #2");
panel2.setPreferredSize(new Dimension(410, 50));
tabbedPane.addTab("OfficeAreaCalculator", panel2);
tabbedPane.setMnemonicAt(1, KeyEvent.VK_2);
add(tabbedPane);
}
protected JComponent makeTextPanel(String text)
{
JPanel panel = new JPanel(false);
JLabel filler = new JLabel(text);
filler.setHorizontalAlignment(JLabel.CENTER);
panel.setLayout(new GridLayout(1, 1));
panel.add(filler);
return panel;
}
// Create JTabbedPane
private static void createAndShowGUI()
{
// Create and set up the window.
JFrame frame = new JFrame("JTabbedPane");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new JTabbedPaneAssignment(), BorderLayout.CENTER);
JTabbedPane DayGui = new JTabbedPane();
JTabbedPane OfficeAreaCalculator = new JTabbedPane();
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
createAndShowGUI();
}
});
}
}
这是 DayGui 类。它最初是一个 JFrame,但我试图将它转换为 JPanel。我认为我的问题出在这部分代码中,但我不知道
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//public class DayGui extends JPanel
public class DayGui extends JPanel
{
private JPanel dayPanel;
private JButton cmdGood;
private JButton cmdBad;
public DayGui()
{
//dayPanel = new JPanel("Messages");
cmdGood = new JButton("Good");
cmdBad = new JButton("Bad");
Container c = dayPanel.getRootPane();
c.setLayout(new FlowLayout());
c.add(cmdGood);
c.add(cmdBad);
dayPanel.setSize(300, 150);
ButtonsHandler bhandler = new ButtonsHandler();
cmdGood.addActionListener(bhandler);
cmdBad.addActionListener(bhandler);
dayPanel.setVisible(true);
dayPanel.getRootPane().setBackground(Color.CYAN);
}
class ButtonsHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == cmdGood)
JOptionPane.showMessageDialog(null, "Today is a good day!",
"Event Handler Message",
JOptionPane.INFORMATION_MESSAGE);
if (e.getSource() == cmdBad)
JOptionPane.showMessageDialog(null, "Today is a bad day!",
"Event Handler Message",
JOptionPane.INFORMATION_MESSAGE);
}
}
}
最佳答案
你的问题一直很模棱两可,而且你发布的代码比这里的任何人有时间浏览的都多。
我制作了一个非常小但有效的 JTabbedPane
示例,让您了解最小的工作量以使其正常工作。
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
public class JTabbedPaneExample extends JFrame{
public JTabbedPaneExample(String title){
super(title);
setSize(800,600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JTabbedPane tabbedPane = new JTabbedPane();
JPanel panelOne = new JPanel();
JPanel panelTwo = new JPanel();
tabbedPane.add(panelOne,"First panel");
tabbedPane.add(panelTwo,"Second panel");
add(tabbedPane);
}
public static void main(String[] args){
new JTabbedPaneExample("JTP Example").setVisible(true);
}
}
然后运行,这段代码看起来像:
如果您在代码中重复相同的过程,但仍然有错误,则问题不在于您的 JTabbedPane
,而在于其他方面。
关于java - JPanels 未添加到 JTabbedPane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19119690/
我编写了一个小程序,用于创建带有选项卡式 Pane 的简单 GUI。目前它有两个选项卡。在一个选项卡中我创建了一个按钮,在另一个选项卡中我创建了两个按钮(基于第三类中的字符串)。我无法做的是在第二个选
我想在单击负责使用 Action Listener 计算的按钮后将选定的 JTabbedPane“计算”更改为 TabbedPane“结果”。 最佳答案 class ButtonHandler imp
收到此错误: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at Project.reportpane.a
我遇到的问题是,在 JTabbedPane 内部时,内部面板的背景颜色未设置(或未显示) 我有以下结构: JPanel BorderLayout: JTabbedPane (BorderLayo
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 9 年前。 Improve t
在我的 JTabbedPane 中,我以两种不同的方式删除标签: tabbedPane.remove(index) 和 tabbedPane.removeAll() 两者在关闭选项卡方面都可以正常工作
我有一个使用 JTabbedPane 来显示多个不同选项卡的应用程序。这些选项卡之一有一个正在运行的线程来显示其内容。我已经实现了一个 ComponentListener 来在选项卡不可见时停止线程。
我想让我的选项卡标签共享 JTabbedPane 宽度。如果有一个标签,适合整个宽度,如果两个标签共享宽度,如果三个,每个 1/3,依此类推... 我什至不知道是否可以在不将组件放在那里并调整其大小的
我想知道如何从左侧开始设置 JTabbedPane 的选项卡位置。默认情况下,它们处于中间位置,因为我使用的是 Mac OS X。 如果您需要更多信息,请告诉我。 查看此图像以了解我使用默认 JTab
在这个 JTabbedPane 截图中 我正在使用 Netbeans 的 DnD,我一直在修改它只是为了在选项卡之间放置空格。到现在我还是得不到我想要的。 有办法吗? 最佳答案 我不确定其他方法,但我
我对java相当陌生,正在创建一个windowbuilder程序。我想知道在使用 Jtabbedpane 并在程序窗口中的选项卡之间切换时是否可以使用 Action 监听器从单独的类获取内容。例如,我
给定一个 contentPane 布局设置为 null 的 JFrame,我想添加两个选项卡,一个用于发布者,另一个用于订阅者,例如: public class PubSubGUI extends J
在 JTabbedPane 中,选项卡的顺序是从下到上: 我希望它是从上到下的,这意味着 tab0 位于顶行,tab60 位于底行。 代码: import javax.swing.JFrame; im
这类似于问题How to build a Google-chrome tabs and menubar interface in Java Swing? (我想完成同样的任务),但更重要的是:如何将组
我想将 JTabbedPane 放在中间,单击我想要更改的任何选项卡将反射(reflect)在选项卡 Pane 的上方和下方面板中。 我尝试过,但它只适用于下面的面板。 如何克服这个问题?请帮助我。
我创建了一个 Java 选项卡式 Pane 。在选项卡式 Pane 中,我创建了一个名为“视频”的选项卡。我希望每当我单击视频选项卡时,视频都会自动在选项卡面板本身上播放。我可以这样做吗?如果是,请告
我有一个很长的数据列表要在 jtabbedpanel 上显示,向下滚动数据时,顶部的选项卡式面板名称将不可见。我怎样才能使选项卡式面板选项卡在顶部可见,甚至在向下滚动? 任何人都可以帮助我解决这个问题
我进行了快速研究来解决这个问题,但到目前为止我没有发现任何与此相关的信息。我将一张图像放入一个 TabbedPane 对象中,但是当我尝试将此图像与 TabbedPane 内的标签中心对齐时,它“不起
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve th
我是一名优秀的程序员,十分优秀!