0

我的 Java 窗格中有 8 个选项卡,我需要每个选项卡都有一个退出按钮,该按钮将关闭该选项卡而不是整个程序。我只能在一个选项卡上获得按钮,但还没有弄清楚如何使它工作。到目前为止,这是我的代码:

import java.awt.BorderLayout;
import java.awt.Color;
import java.util.Date;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.SwingConstants;

public class JavaTabs extends JFrame {

    public JavaTabs() {
        super( "Course Project " );

        JTabbedPane tab = new JTabbedPane();
        // constructing the first panel
        JLabel l1 = new JLabel( " ", SwingConstants.CENTER );
        JPanel p1 = new JPanel();
        p1.setBackground( Color.lightGray );
        p1.add( l1 );
        tab.addTab( "General", null, p1, " Panel #1" );
        JButton exit = new JButton("Exit");

        // constructing the second panel
        JLabel l2 = new JLabel("Change Company Name", SwingConstants.CENTER);
        JPanel p2 = new JPanel();
        p2.setBackground( Color.lightGray );
        p2.add( l2 );
        tab.addTab( "Options", null, p2, " Panel #2" );

        // constructing the third panel
        JLabel l3 = new JLabel( " " );
        JPanel p3 = new JPanel();
        p3.setBackground( Color.lightGray );
        tab.addTab( "Customers", null, p3, " Panel #3" );

        // constructing the fourth panel
        JLabel l4 = new JLabel( " " );
        JPanel p4 = new JPanel();
        p4.setBackground( Color.lightGray );
        p4.add( l4 );
        tab.addTab( "Contractors", null, p4, " Panel #4" );

        // constructing the fifth panel
        JLabel l5 = new JLabel( " " );
        JPanel p5 = new JPanel();
        p5.setBackground( Color.lightGray );
        p5.add( l5 );
        tab.addTab( "Pools", null, p5, " Panel #5" );

        // constructing the sixth panel
        JLabel l6 = new JLabel(" ");
        JPanel p6 = new JPanel();
        p6.setBackground( Color.lightGray );
        p6.add(l6);
        tab.addTab("Hot Tubs", null, p6, "Panel #6" );

        // constructing the seventh panel
        JLabel l7 = new JLabel("  ");
        JPanel p7 = new JPanel();
        p7.setBackground( Color.lightGray );
        p7.add(l7);
        tab.addTab("Temp Calc", null, p7, "Panel #7" );

        // constructing the eighth panel
        JLabel l8 = new JLabel(" ");
        JPanel p8 = new JPanel();
        p8.setBackground( Color.lightGray );
        p8.add(l8);
        tab.addTab("Length Calc",  null, p8, "Panel #8" );

        JButton test = new JButton("Exit"); 
        p1.add(test);

        // add JTabbedPane to container
        getContentPane().add( tab );

        setSize( 350, 300 );
        setLocation(300, 250);
        setVisible( true );
    }

    public static void main( String args[] ) {
        {
            JavaTabs tabs = new JavaTabs();
            tabs.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        }
    }
}
4

1 回答 1

-1

您可以向按钮添加一个侦听器,并使用它:

tab.setEnabledAt(int index, boolean b);

于 2013-08-26T09:38:05.710 回答