JTabbedPane中的组件未显示

时间:2015-12-07 20:01:11

标签: java swing user-interface jpanel jtabbedpane

我使用的是标签式窗格,无法使用标签显示我想要的GUI。我计划为每个不同的选项卡设置不同的Panel对象,以便我可以设置更多功能的布局。现在我没有任何听众或功能,我正在努力让组件出现。

编辑:代码现在出现在问题中,而不是链接。

以下是" General":

的用户界面代码
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JComponent;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.KeyEvent;

public class GeneralGUI extends JPanel{

        public GeneralGUI() {
                JPanel topPanel = new JPanel();
                JPanel panel1 = new JPanel();
                JPanel panel2 = new JPanel();

                JLabel subjectNum = new JLabel("Subject Street #:");
                JLabel subjectStreet = new JLabel("Subject Street Name:");

                JTable compTable = new JTable();
                JTable subjectTable = new JTable();

                JButton getRPT = new JButton("Get RPT file");
                JButton getOrder = new JButton("Get Order/Contract");
                JButton subjectDocs = new JButton("Get Subject Docs");
                JButton compDocs = new JButton("Get Comp Docs");

                panel1.add(subjectNum);
                panel1.add(subjectStreet);
                panel1.add(compTable);

                panel2.add(getRPT);
                panel2.add(getOrder);
                panel2.add(subjectDocs);
                panel2.add(compDocs);
                panel2.add(subjectTable);

                topPanel.add(panel1);
                topPanel.add(panel2);

                topPanel.setVisible(true);

        }
}

以下是选项卡式窗格代码的代码:

import javax.swing.JTabbedPane;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JComponent;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.KeyEvent;

public class AppraisalTabs extends JPanel {
    public AppraisalTabs() {
        super(new GridLayout(1, 1));

        JTabbedPane tabbedPane = new JTabbedPane();

        GeneralGUI genGUI = new GeneralGUI();
//        JComponent panel1 = makeTextPanel("General");
        tabbedPane.addTab("General", genGUI);
        tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);

        JComponent panel2 = makeTextPanel("Docs");
        tabbedPane.addTab("Docs", panel2);
        tabbedPane.setMnemonicAt(1, KeyEvent.VK_2);

        JComponent panel3 = makeTextPanel("Subject");
        tabbedPane.addTab("Subject", panel3);
        tabbedPane.setMnemonicAt(2, KeyEvent.VK_3);

        JComponent panel4 = makeTextPanel("Comps");
        panel4.setPreferredSize(new Dimension(410, 300));
        tabbedPane.addTab("Comps", panel4);
        tabbedPane.setMnemonicAt(3, KeyEvent.VK_4);

        JComponent panel5 = makeTextPanel("Report");
        panel4.setPreferredSize(new Dimension(800, 800));
        tabbedPane.addTab("Report", panel5);
        tabbedPane.setMnemonicAt(4, KeyEvent.VK_5);

        //Add the tabbed pane to this panel.
        add(tabbedPane);

        //The following line enables to use scrolling tabs.
        tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
    }

    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;
    }


    private static void createAndShowGUI() {
        //Create and set up the window.
        JFrame frame = new JFrame("Appraisal Helper");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Add content to the window.
        frame.add(new AppraisalTabs(), BorderLayout.CENTER);

        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        //Schedule a job for the event dispatch thread:
        //creating and showing this application's GUI.
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                //Turn off metal's use of bold fonts
                UIManager.put("swing.boldMetal", Boolean.FALSE);
                createAndShowGUI();
            }
        });
    }
}

我的问题是,一旦我运行代码,选项卡式窗格就会显示,以及正确标题的选项卡,但是" General"标签根本没有显示任何内容。我试图设置按钮及其中的所有内容,但它仍然是空白的。

有什么想法吗?

0 个答案:

没有答案