package work13; import javax.swing.*; import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; public class Jframe { JFrame f = new JFrame("窗口"); JTextArea ta = new JTextArea("测试用例", 10, 20); JComboBox<String>
时间: 2024-04-22 07:23:33 浏览: 14
<String> cb = new JComboBox<String>(); public Jframe() { f.setLayout(new FlowLayout()); f.add(ta); cb.addItem("1"); cb.addItem("2"); cb.addItem("3"); cb.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { String selected = (String)cb.getSelectedItem(); ta.append(selected); } }); f.add(cb); f.setSize(300, 300); f.setVisible(true); } public static void main(String args[]) { new Jframe(); } }
这段代码是一个简单的 Java 程序,实现了一个窗口,窗口包含一个文本框和一个下拉框。当用户选择下拉框的选项时,程序会在文本框中添加该选项的文本。
相关问题
import javax.swing.*; import java.awt.*; import java.awt.event.* public class Win extends JFrame JCheckBox check; public WinO{ setLayout(new FlowLayoutO); check new JCheckBox("good"); check.addltemListener(new ListenerO); add(check); A setBounds(10,10,460,360) setVisible(true); setDefaultCloseOperation(JFrame.HIDE_ON_CLOS public static void main(String args[)( new Win(; class Listener implements ItemListener public void itemStateChanged(ItemEvent e)( JCheckBox box =(JCheckBox)e.getSource0: if(box.isSelected() System.out.println(box.getTextO);
这段代码存在一些语法错误,需要进行修正。以下是修正后的代码:
```
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Win extends JFrame {
JCheckBox check;
public Win() {
setLayout(new FlowLayout());
check = new JCheckBox("good");
check.addItemListener(new Listener());
add(check);
setBounds(10, 10, 460, 360);
setVisible(true);
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
}
public static void main(String args[]) {
new Win();
}
class Listener implements ItemListener {
public void itemStateChanged(ItemEvent e) {
JCheckBox box = (JCheckBox) e.getSource();
if (box.isSelected()) {
System.out.println(box.getText());
}
}
}
}
```
修正后的代码中,JFrame类的声明和JCheckBox变量的声明之间需要加上大括号,JFrame类的构造函数名应该是Win()而不是WinO,FlowLayout类的构造函数需要加上括号。另外,添加监听器时应该使用addItemListener方法而不是addltemListener方法,getSource方法的括号需要补全,getText方法的括号也需要补全。
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class s2 extends JFrame{ private JPanel p1, p2; private JButton btnBig,btn; private JComboBox cmcolor; JLabel LBcolor; s2(){ super("改变按钮的颜色"); p1 = new JPanel (new GridLayout (2,1)); p2 = new JPanel(); btnBig = new JButton("请为我选择一种背景颜色"); LBcolor = new JLabel("请选择背景颜色"); cmcolor = new JComboBox(new String[] {"粉色","橙色","绿色"}); p2.add (cmcolor); p2.add (LBcolor); p1.add(p2); cmcolor.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { int color=(int) cmcolor.getSelectedItem(); btn.setBackground(Color.pink); } }); this.add(p1) ; this.setLocation(200, 100); this.setSize(400, 200); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[]args) { new s2(); } }
这段代码有几个错误:
1.在代码的第28行,将获取到的下拉框的值强制转换为int类型,但实际上下拉框的值类型为字符串类型,因此会出现类型不匹配的错误。
2.在代码的第29行,将按钮的背景颜色设置为Color.pink,而不是根据选中的下拉框值动态设置按钮背景颜色。
以下是修复后的代码:
```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class s2 extends JFrame{
private JPanel p1, p2;
private JButton btnBig,btn;
private JComboBox<String> cmcolor;
JLabel LBcolor;
s2(){
super("改变按钮的颜色");
p1 = new JPanel (new GridLayout (2,1));
p2 = new JPanel();
btnBig = new JButton("请为我选择一种背景颜色");
LBcolor = new JLabel("请选择背景颜色");
cmcolor = new JComboBox<>(new String[] {"粉色","橙色","绿色"});
p2.add (cmcolor);
p2.add (LBcolor);
p1.add(p2);
cmcolor.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
String color = (String) cmcolor.getSelectedItem();
switch (color) {
case "粉色":
btn.setBackground(Color.pink);
break;
case "橙色":
btn.setBackground(Color.orange);
break;
case "绿色":
btn.setBackground(Color.green);
break;
}
}
});
btn = new JButton("按钮");
p1.add(btn);
this.add(p1);
this.setLocation(200, 100);
this.setSize(400, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[]args) {
new s2();
}
}
```
修复后,可以在下拉框中选择颜色,点击按钮可以看到背景颜色随之改变。