1
所以我工作的一個項目,我試圖禁用從程序框架和場,以便只有窗口前的這一個是這裏活躍的 是我的代碼:如何禁用文本框?
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class password
{
private static String password = "pass";
public static void main(String[]args) {
JFrame frame = new JFrame("Password");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400,100);
JLabel label = new JLabel("Enter password");
JPanel panel = new JPanel();
frame.add(panel);
JPasswordField pass = new JPasswordField(10);
pass.setEchoChar('*');
pass.addActionListener(new AL());
panel.add(label, BorderLayout.WEST);
panel.add(pass, BorderLayout.WEST);
}
static class AL implements ActionListener
{
public void actionPerformed(ActionEvent e) {
JPasswordField input = (JPasswordField) e.getSource();
char [] passy = input.getPassword();
String p = new String(passy);
if (p.equals(password)){
JOptionPane.showMessageDialog(null, "Correct");
System.out.print("Welcome to Adam's Quirky program.");
}
else
JOptionPane.showMessageDialog(null, "Incorrect");
}
}
}
程序我目前使用的程序是Eclipse。
從'的char []創建一個''String'您從'JPasswordField'得到[失敗的目的(http://stackoverflow.com/問題/ 8881291 /爲什麼 - 是 - 炭首選,超弦換密碼)。 – Jeffrey
只需幾個註釋:1)類的命名以大寫字母開頭。 2)不要在後面調用setSize(),call pack()方法(和setVisible(true)),最後調用你的框架方法。 (我告訴你這是因爲我犯了同樣的錯誤)。 3)你的Border Layout沒有用處,因爲你根本沒有調用panel.setLayout()方法。 –