2014-03-26 5 views
-1

Employee Constructor의 Employee Class에있는 내 JButton "btnNew"가 비활성화되지 않아 그 이유를 모르겠습니다. 나는 Java를 처음 접했고 어떤 도움을 주셔서 감사합니다. 두 메서드 모두 actionPerformed로 이름을 지정했기 때문에 그 이름이 같지 않지만 오류가 발생했기 때문이라고 생각합니다. newBtn을 클릭하면 작업이 즉 그 개체에 일어날 때 레이아웃 매니저를 사용하는 방법에 대한 주석 외에도JButton이 비활성화되지 않습니다.

import java.awt.*; 
import javax.swing.*; 
import java.awt.event.*; 
import java.util.*; 

abstract class Employee extends JFrame { 
    private Customers cust; 
    public Employee() { 
      setTitle("Employee"); 
      SetLookandFeel(); 
      setLayout(null); 
      setBounds(20,20,700,700); 
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 




      JLabel lblID    = new JLabel("Employee ID:"); 
      JLabel lblFname   = new JLabel("First Name:"); 
      JLabel lblLname   = new JLabel ("Last Name:"); 
      JRadioButton rbMale  = new JRadioButton("Male", false); 
      JRadioButton rbFemale  = new JRadioButton("Female", false); 
      JLabel lblJob    = new JLabel("Job Title:"); 
      JLabel lblEmail   = new JLabel("Email Address:"); 
      JLabel lblLocation   = new JLabel("Location:"); 
      JLabel lblworkingdays  = new JLabel("Working Days:"); 
      JLabel lblDesc    = new JLabel ("Job Description:"); 
      JLabel lblGender   = new JLabel("Gender"); 
      final JTextArea txtDesc = new JTextArea(8,40); 
      JCheckBox chbxSun   = new JCheckBox("Sunday"); 
      JCheckBox chbxMon   = new JCheckBox("Monday"); 
      JCheckBox chbxTue   = new JCheckBox("Tuesday"); 
      JCheckBox chbxWed   = new JCheckBox("Wednesday"); 
      JCheckBox chbxThur   = new JCheckBox("Thursday"); 
      JCheckBox chbxFri   = new JCheckBox("Friday"); 
      JCheckBox chbxSat   = new JCheckBox("Saturday"); 
      final JTextField txtID  = new JTextField(); 
      final JTextField txtFname = new JTextField(); 
      final JTextField txtLname = new JTextField(); 
      final JTextField txtJob = new JTextField(); 
      final JTextField txtEmail = new JTextField(); 
      final JTextField txtLocate = new JTextField(); 
      final JButton btnOpen   = new JButton("Open"); 
      final JButton btnNew    = new JButton("Add Employee"); 
      final JButton btnDelete   = new JButton("Delete"); 
      final JButton btnUpdate   = new JButton("Update"); 
      final JButton btnCancel   = new JButton("Clear"); 




      lblID.setBounds(20,20,100,20); 
      lblFname.setBounds(20,45,100,20); 
      lblLname.setBounds(20,70,100,20); 
      lblJob.setBounds(20,95,100,20); 
      lblEmail.setBounds(20,120,100,20); 
      lblLocation.setBounds(20,145,100,20); 
      lblworkingdays.setBounds(20,170,100,20); 
      lblDesc.setBounds(20,220,100,20); 
      lblGender.setBounds(20,320,100,20); 
      txtID.setBounds(150,20,230,25); 
      txtFname.setBounds(150,45,300,25); 
      txtLname.setBounds(150,70,300,25); 
      txtJob.setBounds(150,95,300,25); 
      txtEmail.setBounds(150,120,300,25); 
      txtLocate.setBounds(150,145,300,25); 
      rbMale.setBounds(150,320,100,20); 
      rbFemale.setBounds(250,320,100,20); 
      txtDesc.setBounds(150,220,300,100); 
      chbxMon.setBounds(150,170,100,20); 
      chbxTue.setBounds(250,170,100,20); 
      chbxWed.setBounds(350,170,100,20); 
      chbxThur.setBounds(450,170,100,20); 
      chbxFri.setBounds(550,170,100,20); 
      chbxSat.setBounds(150,195,100,20); 
      chbxSun.setBounds(250,195,100,20); 
      btnOpen.setBounds(400,20,80,20); 
      btnNew.setBounds(150,345,150,40); 
      btnDelete.setBounds(320,345,80,40); 
      btnUpdate.setBounds(420,345,80,40); 
      btnCancel.setBounds(150,600,80,40); 



      Container con = getContentPane(); 
      con.add(lblID); 
      con.add(lblFname); 
      con.add(lblLname); 
      con.add(lblJob); 
      con.add(lblEmail); 
      con.add(lblLocation); 
      con.add(lblworkingdays); 
      con.add(lblDesc); 
      con.add(lblGender); 
      con.add(txtID); 
      con.add(txtFname); 
      con.add(txtLname); 
      con.add(txtJob); 
      con.add(txtEmail); 
      con.add(txtLocate); 
      con.add(rbMale); 
      con.add(rbFemale); 
      con.add(txtDesc); 
      con.add(chbxMon); 
      con.add(chbxTue); 
      con.add(chbxWed); 
      con.add(chbxThur); 
      con.add(chbxFri); 
      con.add(chbxSat); 
      con.add(chbxSun); 
      con.add(btnOpen); 
      con.add(btnNew); 
      con.add(btnDelete); 
      con.add(btnUpdate); 
      con.add(btnCancel); 

      setVisible(true);  
      btnCancel.addActionListener(new ActionListener() { 
       public void actionPerformed(ActionEvent ae) { 
         txtID.setText(null); 
         txtFname.setText(null); 
         txtLname.setText(null); 
         txtJob.setText(null); 
         txtEmail.setText(null); 
         txtLocate.setText(null); 
         txtDesc.setText(null); 

    }}); 

      btnNew.addActionListener(new ActionListener() { 
       public void actionPerformed(ActionEvent ae) { 
         if (txtID.getText().length() > 0) { 
          btnNew.setEnabled(false); 
         } 
         else { 
          btnNew.setEnabled(true); 
         } 

    }}); 


     } 




    private void SetLookandFeel() { 
       try { 
        UIManager.setLookAndFeel(
          "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); 

       } catch (Exception exc) { 

       } 
      } 

    public Customers getCustomers() { 
     return cust; 
    } 

    public void setCustomers (Customers cust) { 
     this.cust = cust; 
    } 

} 
class SalesPerson extends Employee { 
    public SalesPerson (Customers cust) { 
     setCustomers(cust); 




    } 
} 

class OtherStaff extends Employee { 

} 

class Customers extends Hashtable { 


} 

abstract class Customer extends JFrame { 

    JFrame frame = new JFrame(); 


    public Customer(){ 

     String[] days = {"01", "02", "03", "04", "05", "06", "07", "08", "09", 
       "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" 
       , "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", 
       "31"}; 
     String[] months = {"01", "02", "03", "04", "05", "06", "07", "08", "09" 
       ,"10","11", "12"}; 




     String[] years = {"40","41","42","43","44","45","46","47","48","49","50", 
      "51","52","53","54","55","56","57","58","59","60","61","62","63","64" 
       ,"65","66","67","68","69","70","71","72","73","74","75","76","77" 
       ,"78","79","80","81","82","83","84","85","86","87","88","89","90" 
       ,"91","92","93","94","95","96","97","98","99"}; 


     setTitle("Customer"); 
     setLayout(null); 
     setBounds(20,20,700,700); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     JLabel lblID    = new JLabel("Customer ID:"); 
     JLabel lblFname    = new JLabel("First Name:"); 
     JLabel lblLname    = new JLabel("Last Name:"); 
     JLabel lblStreet   = new JLabel("Street:"); 
     JLabel lblCity    = new JLabel("City:"); 
     JLabel lblZip    = new JLabel("Zip Code:"); 
     JLabel lblPhone    = new JLabel("Phone:"); 
     JLabel lblEmail    = new JLabel("Email:"); 
     JLabel lblDOB    = new JLabel("DOB DD/MM/YY:"); 
     JLabel lblPay    = new JLabel("Cash or Credit?"); 
     JRadioButton rbCash   = new JRadioButton("Cash"); 
     JRadioButton rbCredit  = new JRadioButton("Credit"); 
     final JTextField txtFname = new JTextField(); 
     final JTextField txtLname = new JTextField(); 
     final JTextField txtStreet = new JTextField(); 
     final JTextField txtCity = new JTextField(); 
     final JTextField txtZip  = new JTextField(); 
     final JTextField txtPhone = new JTextField(); 
     final JTextField txtEmail = new JTextField(); 
     JComboBox cbday    = new JComboBox(days); 
     JComboBox cbmonth   = new JComboBox(months); 
     JComboBox cbyear   = new JComboBox(years); 
     final JTextField txtID  = new JTextField(); 
     JButton btnOpen    = new JButton("Open"); 
     JButton btnAdd    = new JButton("Add Customer"); 
     JButton btnDelete   = new JButton("Delete"); 
     JButton btnUpdate   = new JButton("Update"); 
     JButton btnCancel   = new JButton("Clear"); 



     lblID.setBounds(20,20,100,20); 
     lblFname.setBounds(20,45,100,20); 
     lblLname.setBounds(20,70,100,20); 
     lblStreet.setBounds(20,95,100,20); 
     lblCity.setBounds(20,120,100,20); 
     lblZip.setBounds(20,145,100,20); 
     lblPhone.setBounds(20,170,100,20); 
     lblEmail.setBounds(20,195,100,20); 
     lblDOB.setBounds(20,220,100,20); 
     lblPay.setBounds(20,245,100,20); 
     txtID.setBounds(150,20,230,25); 
     txtFname.setBounds(150,45,300,25); 
     txtLname.setBounds(150,70,300,25); 
     txtStreet.setBounds(150,95,300,25); 
     txtCity.setBounds(150,120,300,25); 
     txtZip.setBounds(150,145,300,25); 
     txtPhone.setBounds(150,170,300,25); 
     txtEmail.setBounds(150,195,300,25); 
     cbday.setBounds(150,220,50,20); 
     cbmonth.setBounds(200,220,50,20); 
     cbyear.setBounds(250,220,50,20); 
     rbCash.setBounds(150,245,100,20); 
     rbCredit.setBounds(250,245,100,20); 
     btnOpen.setBounds(400,20,80,20); 
     btnAdd.setBounds(150,270,150,40); 
     btnDelete.setBounds(320,270,80,40); 
     btnUpdate.setBounds(420,270,80,40); 
     btnCancel.setBounds(150,600,80,40); 

     Container con = getContentPane(); 
     con.add(lblID); 
     con.add(lblFname); 
     con.add(lblLname); 
     con.add(lblStreet); 
     con.add(lblCity); 
     con.add(lblZip); 
     con.add(lblPhone); 
     con.add(lblEmail); 
     con.add(lblDOB); 
     con.add(lblPay); 
     con.add(txtID); 
     con.add(txtFname); 
     con.add(txtLname); 
     con.add(txtStreet); 
     con.add(txtCity); 
     con.add(txtZip); 
     con.add(txtPhone); 
     con.add(txtEmail); 
     con.add(cbday); 
     con.add(cbmonth); 
     con.add(cbyear); 
     con.add(rbCash); 
     con.add(rbCredit); 
     con.add(btnOpen); 
     con.add(btnAdd); 
     con.add(btnDelete); 
     con.add(btnUpdate); 
     con.add(btnCancel); 

     setVisible(true); 



     btnCancel.addActionListener(new ActionListener() { 
       public void actionPerformed(ActionEvent ae) { 
         txtID.setText(null); 
         txtFname.setText(null); 
         txtLname.setText(null); 
         txtCity.setText(null); 
         txtEmail.setText(null); 
         txtStreet.setText(null); 
         txtZip.setText(null); 
         txtPhone.setText(null); 

    }}); 

    } 

} 

class CashCustomer extends Customer { 

} 

class CreditCustomer extends Customer { 

} 

class Tester { 
    public static void main(String[] args) { 
     new SalesPerson(new Customers()); 
     new CashCustomer(); 


    } 
} 
+0

를보십시오. – user3359195

+0

'null '레이아웃은 이와 같은 코드를 생성합니다. '레이아웃 및 레이아웃 관리자 '를보십시오 – Brendan

+0

yourbutton.setEnabled (false)를 시도 했습니까 ??? –

답변

1

은의 actionPerformed가 발생합니다. I 은 실제로 txtID에 대한 사용자 작업에 따라이 버튼을 활성화 및 비활성화하는 것으로 생각합니다. JTextField의에 리스너를 구현하려면

, 나는 그것이 안되는 btnNew 텍스트없이 사용 가능 상태를 유지 추가하는 의미 Let ActionListener listen for change in JTextField instead of only enter?

관련 문제