JAVA选项卡设计
我正在尝试用Java制作一个GUI窗口,在顶部有4个选项卡主页,预订,客人,房间。然而,问题是我不确定如何实现特定选项卡中的按钮 更具体地说,我创建了一个名为GuestTab的类,创建了一个按钮和一个文本字段,但我不知道如何将这些信息传递到Guest选项卡 所以,如果我不太清楚,当我点击GuestTab时,我希望有我在GuestTab类中创建的按钮和文本字段 我将把“SEP”类的代码放在GUI主设计的地方,把“GuestTab”类放在为Guest选项卡添加内容的地方 九月六日:JAVA选项卡设计,java,user-interface,Java,User Interface,我正在尝试用Java制作一个GUI窗口,在顶部有4个选项卡主页,预订,客人,房间。然而,问题是我不确定如何实现特定选项卡中的按钮 更具体地说,我创建了一个名为GuestTab的类,创建了一个按钮和一个文本字段,但我不知道如何将这些信息传递到Guest选项卡 所以,如果我不太清楚,当我点击GuestTab时,我希望有我在GuestTab类中创建的按钮和文本字段 我将把“SEP”类的代码放在GUI主设计的地方,把“GuestTab”类放在为Guest选项卡添加内容的地方 九月六日: import j
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class SEP extends JFrame
{
private GuestTab GuestTab;
private JTabbedPane tPane;
private MyButtonListener buttonListener;
private MyTabListener tabListener;
private JMenuBar menuBar;
private JMenu fileMenu;
private JMenuItem exitMenuItem;
public SEP()
{
super("Deer Alley Hotel");
buttonListener = new MyButtonListener();
tabListener = new MyTabListener();
exitMenuItem = new JMenuItem("Exit");
exitMenuItem.addActionListener(buttonListener);
fileMenu = new JMenu("File");
setJMenuBar(menuBar);
tPane = new JTabbedPane();
tPane.addTab(" Home ", new JPanel(
new FlowLayout()));
tPane.addTab(" Booking ", new JPanel(
new FlowLayout()));
tPane.addTab(" Guest ", GuestTab);
tPane.addTab(" Room ", new JPanel(new FlowLayout()));
tPane.addChangeListener(tabListener);
add(tPane);
setSize(575, 452);
setVisible(true);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
private class MyButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == exitMenuItem)
{
int choice = JOptionPane.showConfirmDialog(null,
"Do you really want to exit the program?", "Exit",
JOptionPane.YES_NO_OPTION);
if (choice == JOptionPane.YES_OPTION)
{
System.exit(0);
}
}
}
}
public class MyTabListener implements ChangeListener
{
public void stateChanged(ChangeEvent e)
{
}
}
}
GuestTab.java:
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class GuestTab extends JPanel
{
private JButton button1;
private JButton button2;
private JButton button3;
private JButton button4;
private JPanel panel1;
private JPanel panel2;
private JTextField text;
public GuestTab()
{
panel1 = new JPanel();
button1 = new JButton("Edit Note");
button2 = new JButton("Check out");
button3 = new JButton("Edit Form");
button4 = new JButton("Search");
text = new JTextField(15);
add(panel1);
panel1.setPreferredSize(new Dimension(280, 300));
panel1.add(button4);
panel1.add(text);
setVisible(true);
}
}
您没有正确定义GuestTab 在这方面:
tPane.addTab("Guest", guestTab);
将其更改为:
tPane.addTab("Guest", new GuestTab());
或者您可以初始化JPanel。你从来没有这么做过你只是说
有一个guest选项卡,但您从不使用它做任何事情,因此您还可以:
private GuestTab guestTab;
后来:
guestTab = new GuestTab();
请注意,不要对变量定义和类调用使用相同的大小写。确保您使用的是正确的驼峰大小写。您确实需要修复您的格式设置,但不确定您的意图是什么……如果您以可读的方式对代码进行格式化,它将真正帮助您和那些试图回答您问题的人。(例如:将自定义JPanel拆分为单独的.class eetcWell,在我的Eclipse中不是这样:)我使用了ctrl+shift+f,但在这里它是)不用担心:)确保跟踪您正在做的事情我是新手,我总是迷路呵呵有一天事情会顺利的干杯ty@Seinfeld如果答案对你有用,你应该接受。我现在就接受了,不知道=)