在java中添加标签(swing)

时间:2017-11-17 12:55:25

标签: java swing user-interface jtabbedpane

我得到了一个项目来制作一个名为医生护理的java程序,它有登录面板(用户名和密码)和一个有3个标签的面板。问题是我只能添加一个选项卡,当我尝试通过复制对象(如label2,panel2等)添加另一个选项卡时,它不会出现在执行的JAR文件中。我已经发布了以下代码。

public void actionPerformed(ActionEvent ae)

   {String value1 = text1.getText();
    String value2 = text2.getText();
    if(value1.equals("admin") && value2.equals("admin123456")) {
        NextPage page=new NextPage();
        page.setVisible(true);

        JTabbedPane tabbedPane1 = new JTabbedPane();
        ImageIcon icon1 = createImageIcon("images/middle.gif");
        JComponent panel1 = makeTextPanel("panel#1");
        tabbedPane1.addTab("Booking", icon1, panel1, "For booking appointments");
        JLabel label = new JLabel("Welcome "+value1);
        page.getContentPane().add(label);
        page.getContentPane().add(tabbedPane1);
        //page.add(icon);
        page.getContentPane().add(panel1);

  JTabbedPane tabbedPane2 = new JTabbedPane();
    ImageIcon icon2 = createImageIcon("images/middle.gif");
    JComponent panel2 = makeTextPanel("panel#2");
    tabbedPane2.addTab("Doctors", icon2, panel2, "For choosing appointments");
    JLabel label2 = new JLabel("Welcome "+value2);
    page.getContentPane().add(label2);
    page.getContentPane().add(tabbedPane2);
    //page.add(icon2);
    page.getContentPane().add(panel2);}

2 个答案:

答案 0 :(得分:3)

通常,我总是将GUI构建器视为此任务的最佳工具。

enter image description here

不正确代码不可移植

  @SuppressWarnings("unchecked")
  // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
  private void initComponents() {

    jTabbedPane = new javax.swing.JTabbedPane();
    jPanelFirst = new javax.swing.JPanel();
    jPanelSecond = new javax.swing.JPanel();
    jPanelThird = new javax.swing.JPanel();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    jPanelFirst.setLayout(null);
    jTabbedPane.addTab("tab1", jPanelFirst);

    jPanelSecond.setLayout(null);
    jTabbedPane.addTab("tab2", jPanelSecond);

    jPanelThird.setLayout(null);
    jTabbedPane.addTab("tab3", jPanelThird);

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addComponent(jTabbedPane)
    );
    layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addComponent(jTabbedPane)
    );

    pack();
  }// </editor-fold>

当然,如果你在Eclipse中加载它并做一些“手动混乱”,你可能会抱怨NetBeans无法加载它。那是真的。

就个人而言,我总是问自己。我是想把时间花在手动编写所有代码上,还是我更专注于业务逻辑,并在一些有助于快速完成的工具中进行所有GUI构建?

总是需要权衡利弊。

答案 1 :(得分:0)

这是我前一段时间写过的程序中使用tabbedPanes的示例,如果我有更大的图片,我可以帮助更多。相反,只需将其用作可能的资源,以查看顺序是否可能在窗格中添加选项卡。

注意,contentPane是WindowsBuilder中生成的JPanel。

tabbedPane = new JTabbedPane(JTabbedPane.LEFT);
    tabbedPane.setBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null));
    tabbedPane.setBackground(Color.DARK_GRAY);
    tabbedPane.setForeground(Color.white);
    tabbedPane.setBounds(10, 11, 1900, 1058 - taskBarSize);
    tabbedPane.setFont(new Font("Arial Black", Font.BOLD, 14));
    contentPane.add(tabbedPane);

    te = new TournamentEnlisting();
    tabbedPane.add("<html><body><table width='250'>Tournament Enlisting</table></body></html>", te);

    su = new StreamUpdater();
    tabbedPane.addTab("<html><body><table width='250'>Stream Updating</table></body></html>", su);

    sc = new StreamCapture();
    tabbedPane.addTab("<html><body><table width='250'>Stream Capture</table></body></html>", sc);

    thumb = new ThumbnailEditor();
    tabbedPane.addTab("<html><body><table width='250'>Thumbnail Editor</table></body></html>", thumb);