对,所以我有一个简单的.setVisible(true);导航到其他页面,但我希望能够在某些部分隐藏内容,在某些部分关闭整个程序,例如"取消按钮"关闭整个程序。 我尝试过同样的事情但是(假);它没有用 请告诉我如何做到这一点,谢谢你,我想这样做而不改变我现在的代码,因为它会让我感到困惑,也不会让我对编程感到困惑。 这是我使用GUI构建器的代码。
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.Arrays;
/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class MainMenu extends javax.swing.JFrame {
private JLabel username;
private JLabel passwordlbl;
private JLabel Welco;
private JPasswordField Passwordfld;
private JButton Cancelbtn;
private JButton OKbtn;
private JTextField Usernametxt;
private String Password = "pass";
/**
* Auto-generated main method to display this JFrame
*/
public static void main(String[] args) {
//PASSWORD field to store new password inside
//Passwordfld.setEchoChar('*');
//Passwordfld.addActionListener(new AL());
SwingUtilities.invokeLater(new Runnable() {
public void run() {
MainMenu inst = new MainMenu();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
});
}
public MainMenu() {
super();
initGUI();
}
private static boolean isPasswordCorrect(char[] input) {
boolean isCorrect = true;
char[] correctPassword = { 'b', 'u', 'g', 'a', 'b', 'o', 'o' };
if (input.length != correctPassword.length) {
isCorrect = false;
} else {
isCorrect = Arrays.equals (input, correctPassword);
}
//Zero out the password.
Arrays.fill(correctPassword,'0');
return isCorrect;
}
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
getContentPane().setLayout(null);
username = new JLabel();
getContentPane().add(username);
username.setText("User Name:");
username.setBounds(63, 113, 80, 16);
passwordlbl = new JLabel();
getContentPane().add(passwordlbl);
passwordlbl.setText("Password:");
passwordlbl.setBounds(63, 160, 72, 16);
Usernametxt = new JTextField();
getContentPane().add(Usernametxt);
Usernametxt.setBounds(198, 110, 79, 23);
final JPasswordField Passwordfld = new JPasswordField();
// Passwordfld.setText("Secret");
getContentPane().add(Passwordfld);
Passwordfld.setBounds(198, 157, 79, 23);
Passwordfld.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// System.out.println("Passwordfld.actionPerformed, event="+evt);
// TODO add your code for Passwordfld.actionPerformed
}
});
OKbtn = new JButton();
getContentPane().add(OKbtn);
OKbtn.setText("OK");
OKbtn.setBounds(102, 217, 59, 23);
OKbtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
String passText = new String(Passwordfld.getPassword());
String cmd = evt.getActionCommand();
if (OKbtn.getActionCommand().equals(cmd)) { // Process the password.
if (Usernametxt.getText().equals("Admin")&& (isPasswordCorrect(passText.toCharArray()))) {
System.out.println("Password Accepted");
ItemsPage ItemsPage = new ItemsPage();
ItemsPage.setVisible(true);
} else {
System.out.println("Password Rejected: " + passText);
}
// Zero out the possible password, for security.
Arrays.fill(passText.toCharArray(), '0');
Passwordfld.selectAll();
/*
* else{ System.out.println("permition Rejected"); }
*/
// else{}
/*
* if (Passwordfld = Password)= true) {
* System.out.println("permition granted");}
*/
}
}
});
Cancelbtn = new JButton();
getContentPane().add(Cancelbtn);
Cancelbtn.setText("Exit");
Cancelbtn.setBounds(198, 217, 61, 23);
Cancelbtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
//System.out.println("Cancelbtn.actionPerformed, event="+evt);
//TODO add your code for Cancelbtn.actionPerformed
}
});
Welco = new JLabel();
getContentPane().add(Welco);
Welco.setText("Welcome to Jstore please log in using your staff acount");
Welco.setBounds(51, 19, 291, 16);
pack();
setSize(400, 300);
} catch (Exception e) {
//add your error handling code here
e.printStackTrace();
}
}
//static class AL implements ActionListener{
//JPasswordField input = new JPasswordField();
/* char [] passy = input.getPassword();
String p = new String (passy);{
if (p.equals (Password)){
JOptionPane.showMessageDialog(null, "Correct"); }
else
{ JOptionPane.showMessageDialog(null, "InCorrect");
}
*/
}
答案 0 :(得分:0)
使用System.exit()
关闭整个程序。 Frame.dispose()
会破坏你的JFrame,最后,Frame.setVisable(false)
将隐藏你的框架,但不会销毁它。
所以,要按字面意思回答你的问题,那就是Frame.dispose()
/ Frame.setVisable(false)
/ System.exit()