我总共有三个标签,当用户点击不同的标签时,我需要有用户可以点击的按钮。我也想知道如何让我的窗户更大。提前感谢您的回答。
import javax.swing.JFrame;
import javax.swing.JTabbedPane;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.KeyEvent;
import javax.swing.JButton;
public class Tabs extends JPanel {
public Tabs() {
super(new GridLayout(10, 10));
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.addTab("Initialize", null, null,"Does Nothing");
tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);
tabbedPane.addTab("LLP", null, null, "Does Nothing");
tabbedPane.setMnemonicAt(0, KeyEvent.VK_2);
tabbedPane.addTab("POS", null, null, "Does Nothing");
tabbedPane.setMnemonicAt(0, KeyEvent.VK_3);
add(tabbedPane);
tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
}
private static void createAndShowGUI() {
JFrame frame = new JFrame("Tabbed Pane");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new Tabs(), BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
UIManager.put("swing.boldMetal", Boolean.FALSE);
createAndShowGUI();
}
});
}
}
答案 0 :(得分:2)
将组件添加到JTabbedPane
很简单。您想要在包含面板的JTabbedPane上显示按钮,因此您需要先创建按钮和面板,向面板添加按钮并向JTabbedPane添加面板。
示例:
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
public class TabbedPaneExample {
private JFrame frame = new JFrame();
public TabbedPaneExample() {
JButton btn = new JButton("Test");
JPanel panel = new JPanel();
panel.add(btn);
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.add("Tab1", panel);
frame.add(tabbedPane, BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setMinimumSize(new Dimension(300, 300));
frame.setVisible(true);
}
public static void main(String[] args) {
TabbedPaneExample main = new TabbedPaneExample();
}
}
JButton事件处理
您还询问了如何处理按钮点击事件。这里有很好的解释:A JButton listener example
答案 1 :(得分:1)
您想要的似乎是自定义标签组件,请查看此http://docs.oracle.com/javase/tutorial/uiswing/components/tabbedpane.html
答案 2 :(得分:1)
我想要一个用户可以单击的按钮,这将导致另一个窗口出现并且用户输入数据。
和其他人一样,我对你的问题很困惑,但我会猜测:
tabbedPane.addTab("LLP", null, null, "Does Nothing");
您没有向选项卡添加任何组件。您需要创建一个JPanel并将您的按钮添加到面板。然后在使用addTab(...)方法时将面板添加到选项卡。
就像将面板添加到JFrame一样。您可以将任何组件添加到面板中。
答案 3 :(得分:1)
以下是基于sscce的具体示例。
如何让我的窗户更大?
当您pack()
封闭Window
时,正如您所做的那样,JTabbedPane
采用其最大组件的首选大小。只需在每个添加的面板中添加所需的组件即可。
public Tabs() {
super(new GridLayout());
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.add(createPanel("Initialize"));
tabbedPane.add(createPanel("LLP"));
tabbedPane.add(createPanel("POS"));
add(tabbedPane);
tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
}
private JPanel createPanel(final String name) {
final JPanel p = new JPanel();
p.setName(name);
p.add(new JButton(new AbstractAction(name) {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(p, name);
}
}));
return p;
}
答案 4 :(得分:0)
要添加按钮,请按此操作 How to add close button to a JTabbedPane Tab?。
非常好的教程http://paperjammed.com/2012/11/22/adding-tab-close-buttons-to-a-jtabbedpane-in-java-swing/
您可以添加与JPanel类似的其他按钮。
来自Oracle.
的教程