gpt4 book ai didi

java - 调用内部类的JFrame并隐藏外部类的JFrame

转载 作者:行者123 更新时间:2023-12-01 13:57:46 24 4
gpt4 key购买 nike

当我调用内部类 JFrame 时,它被调用并且正在显示,但外部类 JFrame 没有隐藏。我在这里提供我的代码。非常具体地说,我正在尝试填写表格,然后我想预览我所写的表格。

package com.vote.rmc;

public class LRegister extends JFrame implements ActionListener {

final public JFrame rframe = new JFrame();
JLabel

public LRegister() {

rframe.setSize(800, 600);
rframe.setLocationRelativeTo(null);
cp = getContentPane();
cp.setLayout(null);
setSize(550, 300);
rframe.setTitle("User Registration Form");
cp.setBackground(new Color(140, 180, 180));

JTextArea plainTextArea = new JTextArea();
JScrollPane scrollPanePlain = new JScrollPane(plainTextArea);
cp.add(scrollPanePlain);
scrollPanePlain.setBounds(150, 250, 150, 100);
scrollPanePlain.setVisible(true);

CFirstName = new JLabel("First Name");
CLastName = new JLabel("Last Name");
DOB = new JLabel("Date Of Birth");
FatherName = new JLabel("Father's Name");
PhoneNumber = new JLabel("Phone Number");
address = new JLabel("Address");
departmentName = new JLabel("Department Name");
Year = new JLabel("Year");
EmailID = new JLabel("Email ID");
jpic = new JLabel("Upload your Picture");

l = new JLabel("Candidates Information");
jlmsg = new JLabel("", JLabel.CENTER);

Cfname = new JTextField(10);
Clname = new JTextField(10);
birth = new JTextField(10);
Fname = new JTextField(10);
PhNum = new JTextField(10);
addrss = new JTextField(10);
deptName = new JTextField(10);
Yr = new JTextField(10);
mailID = new JTextField(10);

jbsubmit = new JButton("PREVIEW");

jbrowse = new JButton("BROWSE PICTURE");
jbexit = new JButton("CLOSE");

l.setBounds(270, 10, 250, 35);
CFirstName.setBounds(10, 50, 100, 35);
Cfname.setBounds(150, 55, 150, 25);

CLastName.setBounds(400, 50, 500, 35);
Clname.setBounds(550, 50, 150, 25);

DOB.setBounds(10, 100, 100, 35);
birth.setBounds(150, 105, 150, 25);

FatherName.setBounds(10, 150, 100, 35);
Fname.setBounds(150, 155, 150, 25);

PhoneNumber.setBounds(400, 100, 500, 35);
PhNum.setBounds(550, 100, 150, 25);

departmentName.setBounds(400, 150, 500, 35);
deptName.setBounds(550, 150, 150, 25);

EmailID.setBounds(10, 190, 150, 50);
mailID.setBounds(150, 200, 150, 25);

address.setBounds(10, 250, 100, 35);
addrss.setBounds(150, 250, 150, 100);

Year.setBounds(400, 200, 500, 35);
Yr.setBounds(550, 200, 150, 25);

jbsubmit.setBounds(150, 380, 92, 25);
//jbnew.setBounds(300,380,92,25);
jbexit.setBounds(450, 380, 92, 25);

jpic.setBounds(400, 250, 500, 35);
jbrowse.setBounds(550, 253, 150, 25);

jbsubmit.addActionListener(this);
//jbnew.addActionListener(this);
jbrowse.addActionListener(this);
jbexit.addActionListener(this);

cp.add(jpic);
cp.add(Cfname);
cp.add(CFirstName);
cp.add(CLastName);
cp.add(DOB);
cp.add(EmailID);
cp.add(FatherName);
cp.add(Clname);
cp.add(Fname);
cp.add(departmentName);
cp.add(deptName);
cp.add(Year);
cp.add(birth);
cp.add(Fname);
cp.add(PhNum);
cp.add(addrss);
cp.add(Yr);
cp.add(mailID);

cp.add(DOB);
cp.add(PhoneNumber);
cp.add(address);
cp.add(jbsubmit);
//cp.add(jbnew);
cp.add(jbexit);
cp.add(jbrowse);
cp.add(l);

rframe.add(cp);
rframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
rframe.setVisible(true);

}

public void actionPerformed(ActionEvent ae) {
String action = ae.getActionCommand();

if (action == "PREVIEW") {
new B();

rframe.setVisible(false);

}

if (action == "CLOSE") {
rframe.setVisible(false);
}

if (action == "BROWSE PICTURE") {
if (ae.getSource() == jbrowse) {
analizepath();
rframe.setVisible(true);
}
}

}

private File getFile() {
JFileChooser filechooser = new JFileChooser();
filechooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
@SuppressWarnings("unused")
int result = filechooser.showOpenDialog(this);
File filename = filechooser.getSelectedFile();
if ((filename == null) || (filename.getName().equals(""))) {
JOptionPane.showMessageDialog(this, "invalid filename", "invalidfilename", JOptionPane.ERROR_MESSAGE);
}
return filename;
}

public void analizepath() {
File name = getFile();

path = name.getAbsolutePath();
picture = new ImageIcon(path);
pic = new File(path);
try {
inputStream = new FileInputStream(pic);
} catch (Exception d) {
System.out.println(d);
}
System.out.print(path);
}

class B {

JFrame frame = new JFrame();

public B() {

B.this.frame.setSize(800, 600);
B.this.frame.setLocationRelativeTo(null);
cp = getContentPane();
cp.setLayout(null);
setSize(550, 300);
B.this.frame.setTitle("Preview Form");
cp.setBackground(new Color(140, 180, 180));

JTextField c = LRegister.this.Cfname;
String cfn = c.getText();
System.out.println(cfn);

CFirstName = new JLabel(cfn);

CLastName = new JLabel("Last Name");

DOB = new JLabel("Date Of Birth");

FatherName = new JLabel("Father's Name");

PhoneNumber = new JLabel("Phone Number");

address = new JLabel("Address");

departmentName = new JLabel("Department Name");

Year = new JLabel("Year");

EmailID = new JLabel("Email ID");

jpic = new JLabel("Your Picture");

l = new JLabel("Preview Your Form Before Submitting");

jlmsg = new JLabel("", JLabel.CENTER);

l.setBounds(270, 10, 250, 35);
CFirstName.setBounds(10, 50, 100, 35);
CLastName.setBounds(400, 50, 500, 35);
DOB.setBounds(10, 100, 100, 35);
FatherName.setBounds(10, 150, 100, 35);
PhoneNumber.setBounds(400, 100, 500, 35);
departmentName.setBounds(400, 150, 500, 35);
EmailID.setBounds(10, 190, 150, 50);
address.setBounds(10, 250, 100, 35);
Year.setBounds(400, 200, 500, 35);
jpic.setBounds(400, 250, 500, 35);

cp.add(jpic);
cp.add(CFirstName);
cp.add(CLastName);
cp.add(DOB);
cp.add(EmailID);
cp.add(FatherName);
cp.add(departmentName);
cp.add(Year);
cp.add(DOB);
cp.add(PhoneNumber);
cp.add(address);
cp.add(l);

frame.repaint();
B.this.frame.add(cp);
B.this.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
B.this.frame.setVisible(true);

}

}

最佳答案

您正在创建多个不同的 JFrame 实例,这些实例彼此之间没有连接...

public class LRegister extends JFrame implements ActionListener {

final public JFrame rframe = new JFrame();

LRegister 是一个 JFrame,您可以在其上构建 UI(据我所知)。但随后您尝试更改 rframe 的可见性状态?

您可以考虑使用CardLayout而不是诉诸使用不同的框架,但这意味着您需要开始使用 Layout Managers直接

通读一下How do I compare strings in Java?也是个好主意。和 The Use of Multiple JFrames: Good or Bad Practice?

关于java - 调用内部类的JFrame并隐藏外部类的JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19534152/

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