可以在构造的时候,直接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用Choice 的getSelectedItem()方法获取它的值,用add(String)方法赋值。例子程序如下:import java.awt.Choice
import java.awt.event.ItemEvent
import java.awt.event.ItemListener
import javax.swing.JFrame
import javax.swing.JPanel
public class R extends JFrame implements ItemListener{
Choice ch1=new Choice()
R(){
ch1.add("1")
ch1.add("2")
ch1.add("3")
ch1.add("4")
ch1.add("5")
ch1.addItemListener(this)
JPanel jp=new JPanel()
jp.add(ch1)
add(jp)
setSize(300, 300)
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
setVisible(true)
}
public static void main (String [] args){
new R()
}
public void itemStateChanged(ItemEvent ie) {
if(ie.getSource()==ch1){
Choice temp=(Choice)ie.getSource()
System.out.println(temp.getSelectedItem())
}
}
}