English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Es ist eine Unterklasse von IllegalStateException, was bedeutet, dass das AWT-Komponenten nicht im richtigen Zustand sind, d.h., wenn Sie Komponenten verwenden, aber nicht korrekt, führt dies zu dieser Ausnahme. Es können mehrere Fälle auftreten, in denen diese Ausnahme auftritt
In diesem Beispiel versuchen wir, nach dem Einstellen der Sichtbarkeit des Fensters auf true, hier ein Beispiel für ein Login-Formular zu erstellen. Wir versuchen, die Position plattformabhängig auf true zu setzen, was nicht angemessen ist.
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class LoginDemo extends JFrame implements ActionListener { JPanel panel; JLabel user_label, password_label, message; JTextField userName_text; JPasswordField password_text; JButton submit, cancel; LoginDemo() { // Benutzername-Label user_label = new JLabel(); user_label.setText("User Name :"); userName_text = new JTextField(); // Passwort-Label password_label = new JLabel(); password_label.setText("Password :"); password_text = new JPasswordField(); // Submit submit = new JButton("SUBMIT"); panel = new JPanel(new GridLayout(3, 1)); panel.add(user_label); panel.add(userName_text); panel.add(password_label); panel.add(password_text); message = new JLabel(); panel.add(message); panel.add(submit); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Denken Sie den Listener zum Komponenten hinzu. submit.addActionListener(this); add(panel, BorderLayout.CENTER); setTitle("Please Login Here !"); setLocationRelativeTo(null); setSize(375,250); setVisible(true); setLocationByPlatform(true); } public static void main(String[] args) { new LoginDemo(); } @Override public void actionPerformed(ActionEvent ae) { String userName = userName_text.getText(); char[] password = password_text.getPassword(); if (userName.trim().equals("admin") && new String(password).trim().equals("admin")) { message.setText(" Hello " + userName + "" } message.setText(" Invalid user.. "); } } }
Ausgaberesultat
Exception im Thread "main" java.awt.IllegalComponentStateException: Das Fenster wird auf dem Bildschirm angezeigt. bei java.awt.Window.setLocationByPlatform(Unknown Source) bei myPackage.LoginDemo.<init>(LoginDemo.java:51) bei myPackage.LoginDemo.main(LoginDemo.java:55)
In diesem Fall können Sie das Problem lösen, indem Sie false an setLocationByPlatform() übergeben oder es vollständig entfernen.