求助!请问如何编写一个Java监听事件的代码。
利用一个ComboBox的选项来控制另一个ComboBox的选项。如在第一个ComboBox选择“动物”,第二个ComboBox会出现“狗”,“猫”,“人”等选项。当第一...
利用一个ComboBox的选项来控制另一个ComboBox的选项。如在第一个ComboBox选择“动物”,第二个ComboBox会出现“狗”,“猫”,“人”等选项。当第一个ComboBox选择“植物”时,第二个ComboBox会出现“花”,“草”,“树”等选项。请高手给我编个简单代码,感激不尽!
展开
3个回答
展开全部
Java监听事件的例子代码如下:
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class CC extends JFrame implements ItemListener
{
JComboBox A, B;
JPanel pane;
String a[] = {"动物", "植物"};
String b[] = {"狗", "猫", "人"};
String c[] = {"花", "草", "树"};
private CC()
{
setBounds(400, 200, 400, 300);
pane = new JPanel();
A = new JComboBox(a);
A.addItemListener(this);
B = new JComboBox(b);
pane.add(A);
pane.add(B);
add(pane);
setResizable(false);
setVisible(true);
}
public static void main(String[] args)
{
new CC();
}
public void itemStateChanged(ItemEvent e)
{
if(e.getSource()==A){
if(A.getSelectedIndex()==0){
B.removeAllItems();
for(int i=0;i<b.length;i++){
B.addItem(b[i]);
}
}else if(A.getSelectedIndex()==1){
B.removeAllItems();
for(int i=0;i<c.length;i++){
B.addItem(c[i]);
}
}
}
}
}
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class CC extends JFrame implements ItemListener
{
JComboBox A, B;
JPanel pane;
String a[] = {"动物", "植物"};
String b[] = {"狗", "猫", "人"};
String c[] = {"花", "草", "树"};
private CC()
{
setBounds(400, 200, 400, 300);
pane = new JPanel();
A = new JComboBox(a);
A.addItemListener(this);
B = new JComboBox(b);
pane.add(A);
pane.add(B);
add(pane);
setResizable(false);
setVisible(true);
}
public static void main(String[] args)
{
new CC();
}
public void itemStateChanged(ItemEvent e)
{
if(e.getSource()==A){
if(A.getSelectedIndex()==0){
B.removeAllItems();
for(int i=0;i<b.length;i++){
B.addItem(b[i]);
}
}else if(A.getSelectedIndex()==1){
B.removeAllItems();
for(int i=0;i<c.length;i++){
B.addItem(c[i]);
}
}
}
}
}
展开全部
DefaultComboBoxModel<String> animals = new DefaultComboBoxModel<>();
DefaultComboBoxModel<String> plants = new DefaultComboBoxModel<>();
animals.addElement("狗");
...
plants.addElements("花");
...
DefaultComboBoxModel<String> category = new DefaultComboBoxModel<>();
category.addElement("动物");
..
JComboBox category_box = new JComboBox(category);
category_box.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
if(...) combo.setModel(animals);
else combo.setModel(plants);
}
});
DefaultComboBoxModel<String> plants = new DefaultComboBoxModel<>();
animals.addElement("狗");
...
plants.addElements("花");
...
DefaultComboBoxModel<String> category = new DefaultComboBoxModel<>();
category.addElement("动物");
..
JComboBox category_box = new JComboBox(category);
category_box.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
if(...) combo.setModel(animals);
else combo.setModel(plants);
}
});
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接用case不就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询