gpt4 book ai didi

java - GUI多窗口

转载 作者:行者123 更新时间:2023-12-02 05:51:25 25 4
gpt4 key购买 nike

我最近正在编写一个关于预订座位的代码。在其 guı 部分,我需要创建多个窗口。我的意思是窗口应该根据用户的选择进行更改。例如 ;在其中一扇 window 里1)如果用户点击预订座位按钮,他将进入姓名输入页面2)如果用户点击“关于我们”按钮,他将转到提供有关开发人员信息的页面。

因此在最后页面将创建复杂的交互映射。

但是我什至无法创建第一个过渡。我已经尝试过内部框架!

你能给我一个例子或想法吗?

这是我的主页

public Main_GUI()   {

getContentPane().setLayout(null);

panel0 =new JPanel();
panel0.setBackground(Color.BLUE);
panel0.setBounds(22, 11, 407, 278);
panel0.setLayout(null);
p1=new About_Us();
p2=new Username();
pnew=new JPanel();


JLabel lblLibraryBooking = new JLabel("LIBRARY BOOKING");
lblLibraryBooking.setForeground(Color.YELLOW);
lblLibraryBooking.setFont(new Font("Tahoma", Font.BOLD, 30));
lblLibraryBooking.setBounds(61, 11, 295, 50);
panel0.add(lblLibraryBooking);

JButton btnNewButton = new JButton("RESERVE A SEAT NOW!");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

panel0.setVisible(false);

pnew=p2.getPanel();
pnew.setVisible(true);
repaint();

}
});
btnNewButton.setBounds(93, 80, 198, 50);
panel0.add(btnNewButton);

JButton btnAboutUs = new JButton("ABOUT US");
btnAboutUs.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
panel0.setVisible(false);
p1.getPanel().setVisible(true);



}
});
btnAboutUs.setBounds(93, 214, 198, 23);
panel0.add(btnAboutUs);


uri=null;
try {
uri = new URI("http://library.bilkent.edu.tr/");
} catch (URISyntaxException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}



JButton btnNewButton_1 = new JButton("Go To Bilkent Library Webpage !");
btnNewButton_1.setBounds(93, 156, 198, 31);
btnNewButton_1.setHorizontalAlignment(SwingConstants.LEFT);
btnNewButton_1.setBorderPainted(false);
btnNewButton_1.setOpaque(false);
btnNewButton_1.setBackground(Color.WHITE);
btnNewButton_1.setToolTipText(uri.toString());
btnNewButton_1.addActionListener(new theListener());

panel0.add(btnNewButton_1);



}

public static void open(URI uri) {
if (Desktop.isDesktopSupported()) {
try {
Desktop.getDesktop().browse(uri);
} catch (IOException e){
e.printStackTrace();
}
}
}

private class theListener implements ActionListener
{

public void actionPerformed(ActionEvent e) {


open(uri);

}

}
public JPanel getPanel(){
return panel0;
}






}

这是我的关于我们代码

public About_Us() {
getContentPane().setLayout(null);

panel1 = new JPanel();
panel1.setVisible(false);
panel1.setBackground(Color.RED);
panel1.setBounds(10, 11, 430, 278);
panel1.setLayout(null);

JLabel lblAboutUs = new JLabel("ABOUT US");
lblAboutUs.setForeground(Color.GREEN);
lblAboutUs.setFont(new Font("Tahoma", Font.BOLD, 33));
lblAboutUs.setBounds(136, 11, 176, 33);
panel1.add(lblAboutUs);

JTextPane txtpnWeAre = new JTextPane();
txtpnWeAre.setFont(new Font("Tahoma", Font.ITALIC, 14));
txtpnWeAre.setBackground(Color.CYAN);
txtpnWeAre.setText("Our group's name is Process Completed. \r\nOur members are:\r\n-P\u0131nar G\u00F6ktepe\r\n-\u0130rem Herg\u00FCner\r\n-Berire G\u00FCnd\u00FCz\r\n-Mavi Nunn Polato\u011Flu\r\n-Fatih Alperen \u015Eahin\r\n-Vedat Mert \u015Een");
txtpnWeAre.setBounds(10, 77, 410, 160);
panel1.add(txtpnWeAre);

JButton btnBack = new JButton("BACK");
btnBack.setBounds(189, 244, 89, 23);
btnBack.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
panel1.removeAll();
Main_GUI Trns1=new Main_GUI();
Trns1.getPanel().setVisible(true);
repaint ();
}
});
panel1.add(btnBack);

}

public JPanel getPanel(){
return panel1;
}

}

这是我的工作代码,结合了两者

public class WORK extends  JApplet {

public static void main(String [] args) {
JFrame frame=new JFrame ();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Main_GUI m1=new Main_GUI();
frame.add(m1.getPanel());
frame.pack();
frame.setVisible(true);




}

}

最佳答案

这听起来像是 CardLayout manager 的工作。

本质上,CardLayout 允许您在更高级别的容器(例如另一个容器中的 JPanel)之间进行更改,这样您的主视图就可以是主菜单,或者用户选择的特定内容,并在需要时返回主菜单。

关于java - GUI多窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23503381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com