可以在构造的时候,直接add(...),也可以addItem()
还可以在显示出来后,在动态往里面添加
参考代码如下
import java.awt.*import java.awt.event.*
import javax.swing.*
public class ChoiceDemo extends JFrame implements ActionListener{
Choice ch
JTextField jtf
JButton jb
public ChoiceDemo() {
ch = new Choice()
ch.add("选择一")//Choice添加值的第一种方法
ch.add("选择二")
ch.addItem("选择三")//Choice 添加值的第二种方法(已经过时的方法,推荐使用第一种方法)
add(ch)
jtf =new JTextField(8)
add(jtf)
jb = new JButton("文本框内容添加到choice框")
jb.addActionListener(this)
add(jb)
setLayout(new FlowLayout())
setSize(450, 120)//大小
setDefaultCloseOperation(EXIT_ON_CLOSE)//点击关闭按钮时退出程序
setLocationRelativeTo(null)//居中
setVisible(true)//可见
}
public static void main(String[] args) {
new ChoiceDemo()
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jb){
ch.add(jtf.getText())//继续动态添加值, 把文本框的内容添加到choice里
ch.select(ch.getItemCount()-1)//选中Choice里最后一个值
}
}
}
Choice是awt里面的内容,会有中文乱码,可以用JComboBox代替,就不会有乱码了如果非要用这个就要设置虚拟机参数,右键代码页选择运行配置,vm里面填入-Dfile.encoding=gbk