2016-03-10 3 views
0

Я хочу определить, что JComboBox элемент выбирается, когда я нажимаю JButton. Результат будет помещен в TextField, который я уложил в свое действие.JComboBox с JButton в TextField

Например, когда я выбираю подходящее число, оно будет классифицироваться во что-то с помощью JButton, и результат будет на TextField.

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

class mFrame extends JFrame implements ActionListener 
{ 
JLabel lblAge = new JLabel("Age"); 
JComboBox cboAge = new JComboBox(); 
JButton btnClass = new JButton("Classification"); 
JTextField txtField = new JTextField(); 
JButton btnClose = new JButton("Close"); 

public mFrame() 
{ 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setLayout(null); 
    setSize(400,200); 

    add(lblAge); 
    add(cboAge); 
    add(btnClass); 
    add(txtField); 
    add(btnClose); 

    lblAge.setBounds(10,10,100,20); 
    cboAge.setBounds(140,10,120,20); 
    btnClass.setBounds(10,30,120,20); 
    txtField.setBounds(140,30,120,20); 
    btnClose.setBounds(200,105,70,20); 
    for (int j = 10; j < 101; j++) cboAge.addItem(new Integer(j)); 

    cboAge.addActionListener(this); 
    btnClass.addActionListener(this); 
    txtField.addActionListener(this); 
    btnClose.addActionListener(this); 
    setVisible(true); 
} 
public void actionPerformed(ActionEvent age) 
{ 
    //if (age.getSource() == btnClass) 
    { 
     // 
    if (age.getSource() == btnClose) 
    { 
     System.exit(0); 
    } 
} 
} 
} 
    class StartHere 
{ 
    public static void main(String [] args) 
    { 
     new mFrame(); 
    } 
} 
+0

Где код? –

+0

Просьба указать [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). –

+0

Используйте JTextField. –

ответ

0

первый вам не нужно addActionListener() для txtField и cboAge , потому что вы ничего не делаете, когда действие выполняется там. просто сделайте это для кнопок.

и это, как actionPerformed() может быть (примечание: я изменил ActionEvent age к ActionEvent e)

public void actionPerformed(ActionEvent e){ 
    if (e.getSource() == btnClass){ 
     String selectedValue = cboAge.getSelectedItem().toString(); 

     // if you need it as integer... 
     int age = Integer.parseInt(selectedValue); 

     // do your classification processing... assuming output value is assigned in String result. 

     //ex for classification processing: 
     String result = ""; 
     if(age>=10 && age<=19){ 
       result = "Teenage"; 
     }else if(age>=20 && age<=28){ 
       result = "blah blah"; 
     }//... and so on... 

     txtField.setText(result); 
    }else if (e.getSource() == btnClose){ 
     System.exit(0); 
    } 
} 
+0

спасибо за ответ, я пробовал это, но что, если я получил конкретные классификации каждый номер, который я выбираю в поле со списком? например , когда я нажимаю 10-19, результатом классификации будет Teenager , когда я нажимаю 20-30 и т.д., результат классификации будет взрослым и таким, что !! Я могу получить результат только 1 номер !, извините im все еще новичок в программировании и вам нужна помощь, чтобы исследовать больше – Chim

+0

, что я имею в виду под 'вашей обработкой классификации ...' вы можете сравнить «возраст» как integer для категорий, которые вы имеете, ex, 'if (age> = 10 && age <= 19) {result =" Teenage ";}' ... и так далее – Yazan

+0

проверить ответ, обновленный с помощью образца 'if-statement' – Yazan

Смежные вопросы