gpt4 book ai didi

JAVA标签设计

转载 作者:行者123 更新时间:2023-11-30 10:53:25 27 4
gpt4 key购买 nike

我正在尝试用 Java 创建一个 GUI 窗口,顶部有 4 个选项卡 HomeBookingGuest房间。但是,问题是我不确定如何在特定选项卡中实现按钮。

更具体地说,我制作了一个名为 GuestTab 的类,并制作了 1 个按钮和 1 个文本字段,但我不知道如何将这些信息传达给 Guest 选项卡。

所以,如果我不是很清楚,当我点击 Guest 选项卡时,我希望有我在 GuestTab 类中制作的按钮和文本字段。

我将放置“SEP”类的代码,其中包含我的 GUI 主要设计和“GuestTab”类的代码,其中我为访客选项卡添加内容。

SEP.java:

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。你从来没有真正做到这一点你只是说有一个访客选项卡,但您无需对其进行任何操作,因此您还可以:

private GuestTab guestTab;

然后是:

guestTab = new GuestTab();

旁注,永远不要对变量定义和类调用使用相同的大小写。确保您使用的是正确的驼峰式大小写。

关于JAVA标签设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34008409/

27 4 0