2015-11-14 69 views
1

我正在尝试使用Java创建登录表单。我不能让它工作。Java,JButton错误

我到处都找过那么互联网对如何解决这一问题,我无法找到任何东西。

代码: LoginFrame.java:

import java.awt.*; 
    import java.awt.event.*; 
    import javax.swing.*; 
    public class LoginFrame extends JFrame 
    { 
     JPanel pane = new JPanel(); 
     static JFormattedTextField username = new JFormattedTextField(16); 
     static JFormattedTextField password = new JFormattedTextField(16); 
     static JButton loginButton = new JButton("Login!"); 
     static String input[]; 

     public LoginFrame() throws IOException 
     { 

     super("Login"); 
     setSize(300,150); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     Container con = this.getContentPane(); 
     con.add(pane); 

     pane.add(new JLabel("Username")); 
     pane.add(username); 
     pane.add(new JLabel("Password")); 
     pane.add(password); 
     pane.add(loginButton); 
     @Override 
     IEventHandler eHandler = new IEventHandler(); 
     @Override 
     loginButton.addActionListener(eHandler); 
     setVisible(true); 
     } 

     static String[] getInput() 
     { 
     return input; 
     } 
    } 

IEventHandler.java:

import java.awt.event.*; 

    class IEventHandler implements ActionListener 
    { 

     public void actionPreformed(ActionEvent e) 
     { 
     if(e.getSource() == LoginFrame.loginButton){ 
      LoginFrame.loginButton.setEnabled(false); 
      new AuthLIB().authenticate(LoginFrame.getInput()); 
     } 
     } 
     public IEventHandler() 
     { 
     System.out.println("Event Handler Hooked"); 
     } 
    } 

My Errors

+1

恰好是不工作怎么办?你有错误吗?如果是这样,请发布它们。 – mezmi

+0

它们张贴在链接的一个图像 – ComputerCandy

+0

什么,我不明白 – ComputerCandy

回答

2

你是不是覆盖:在任何方法体。这些

@Override 
IEventHandler eHandler = new IEventHandler(); 
@Override 
loginButton.addActionListener(eHandler); 

应该只是

IEventHandler eHandler = new IEventHandler(); 
loginButton.addActionListener(eHandler); 

假设你要ActionListener.actionPerformed(ActionEvent)

public void actionPreformed(ActionEvent e) 

应使用注解。反正你会看到拼写错误更快。

@Override 
public void actionPerformed(ActionEvent e) 
+0

它的工作,谢谢 – ComputerCandy

+0

@ComputerCandy:如果这为你工作,请考虑接受它作为答案。要做到这一点,请点击答案左侧的刻度线,以便它变成绿色。 – halfer