【问题标题】:adding tabs in java (swing)在java中添加标签(swing)
【发布时间】:2018-05-01 06:15:34
【问题描述】:

我得到了一个项目来制作一个名为医生护理的 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);}

【问题讨论】:

  • 你是如何尝试创建新标签的,然后我们可以看到你哪里出错了。
  • 您可能需要使用不起作用的实际代码进行更新。
  • 感谢您的反馈。请告诉我哪里出错了。
  • 请提供一个简短的可运行示例 (SSCCE),以便我们重现您的问题并调试您的代码。
  • docs.oracle.com/javase/tutorial/uiswing/examples/components/… 请单击选项卡式窗格演示项目。就是这样。

标签: java swing user-interface jtabbedpane


【解决方案1】:

我通常认为 GUI 构建器是完成这项任务的最佳工具。

代码不可移植是不正确

  @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?

总会有取舍。

【讨论】:

  • 由 IDE 生成的代码不可移植,如果您切换到不同的 IDE 并且最终花时间学习 IDE 而不是 Swing,则无法维护。
【解决方案2】:

这是我不久前编写的使用 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    • 2015-11-05
    • 2012-07-03
    • 1970-01-01
    • 2022-01-09
    • 2014-01-18
    相关资源
    最近更新 更多