我在做一个登陆的界面但需要选择是店员和店长的选项出现问题了.不知道如何获取下拉列表的值代码如下:
红色是要解决的问题谢谢.
package frame;
import javax.swing.*;
import db.ContactDao;
import java.awt.*;
import java.awt.event.*;public class Login extends JFrame 
implements ActionListener {
private static final long serialVersionUID = 1L; JLabel lName = new JLabel("登陆账号:");
JLabel lPw = new JLabel("登陆密码:");
JComboBox yh;
JTextField tName = new JTextField(15);
JPasswordField tPw = new JPasswordField(15);
JButton btnOk = new JButton("登  陆");
JButton btnExit = new JButton("退  出");
String [] depart={"店员","店长"}; //初始化界面
public Login() {
Container c = this.getContentPane();
c.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 8)); c.add(lName);
c.add(tName);
c.add(lPw);
c.add(tPw);
JComboBox yh=new JComboBox(depart);
c.add(yh);
c.add(btnOk);
c.add(btnExit); // 2个按钮注册监听器
btnOk.addActionListener(this);
btnExit.addActionListener(this); this.setTitle("身份认证");
this.setBounds(400, 300, 280, 140);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}


//按钮事件处理
public void actionPerformed(ActionEvent e) {
//退出按钮
if (e.getSource() == btnExit) {
System.exit(0);
}
//登陆按钮

if (e.getSource() == btnOk) {
// 先获取用户输入的帐户名和密码
String name = tName.getText();
char[] pwTmp = tPw.getPassword();
String pw = new String(pwTmp);

String v=null;//在这里获取并传递到boolean flag = ContactDao.checkUser(name, pw,v);里
boolean flag = ContactDao.checkUser(name, pw,v); if (flag == true) {
this.dispose();
new MainFrame(); //验证成功,调出主界面
} else {
JOptionPane.showMessageDialog(this, 
"很遗憾,账号或密码错误!", "出错提示",
JOptionPane.ERROR_MESSAGE);
}
// 清空用户之前的输入
tName.setText("");
tPw.setText("");
tName.grabFocus();
}
} public static void main(String[] args) {
new Login();
}
}

解决方案 »

  1.   

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at frame.Login.actionPerformed(Login.java:59)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)出现这种错误,貌似不正确
      

  2.   

    正确代码是:
    package frame;
    import javax.swing.*;
    import db.ContactDao;
    import java.awt.*;
    import java.awt.event.*;public class Login extends JFrame  
    implements ActionListener {
    private static final long serialVersionUID = 1L;JLabel lName = new JLabel("登陆账号:");
    JLabel lPw = new JLabel("登陆密码:");
    JComboBox yh;
    JTextField tName = new JTextField(15);
    JPasswordField tPw = new JPasswordField(15);
    JButton btnOk = new JButton("登 陆");
    JButton btnExit = new JButton("退 出");
    String [] depart={"店员","店长"};//初始化界面
    public Login() {
    Container c = this.getContentPane();
    c.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 8));c.add(lName);
    c.add(tName);
    c.add(lPw);
    c.add(tPw);
    yh=new JComboBox(depart);
    c.add(yh);
    c.add(btnOk);
    c.add(btnExit);// 2个按钮注册监听器
    btnOk.addActionListener(this);
    btnExit.addActionListener(this);this.setTitle("身份认证");
    this.setBounds(400, 300, 280, 140); 
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);
    }
    //按钮事件处理
    public void actionPerformed(ActionEvent e) {
    //退出按钮
    if (e.getSource() == btnExit) {
    System.exit(0);
    }
    //登陆按钮if (e.getSource() == btnOk) {
    // 先获取用户输入的帐户名和密码
    String name = tName.getText();
    char[] pwTmp = tPw.getPassword();
    String pw = new String(pwTmp);String v=(String)jComboBox1.getSelectedItem();
    boolean flag = ContactDao.checkUser(name, pw,v);if (flag == true) { 
    this.dispose();
    new MainFrame(); //验证成功,调出主界面
    } else {
    JOptionPane.showMessageDialog(this,  
    "很遗憾,账号或密码错误!", "出错提示",
    JOptionPane.ERROR_MESSAGE);
    }
    // 清空用户之前的输入
    tName.setText("");
    tPw.setText("");
    tName.grabFocus();
    }
    }public static void main(String[] args) {
    new Login();
    }
    }