在JAVA中怎么让文本框显示选择框的内容
1个回答
展开全部
import javax.swing.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
public class DateSelect extends JFrame {
JTextField resultText;
JComboBox yearComboBox, monthComboBox, dayComboBox;
DefaultComboBoxModel day30ComboBoxModel,day31ComboBoxModel,day28ComboBoxModel,day29ComboBoxModel;
public DateSelect() {
this.setTitle("");
this.setSize(230, 100);
DefaultComboBoxModel yearComboBoxModel = new DefaultComboBoxModel();
DefaultComboBoxModel monthComboBoxModel = new DefaultComboBoxModel();
day30ComboBoxModel = new DefaultComboBoxModel();
day31ComboBoxModel = new DefaultComboBoxModel();
day28ComboBoxModel = new DefaultComboBoxModel();
day29ComboBoxModel = new DefaultComboBoxModel();
for (int i = 1900; i <= 2999; i++) {
yearComboBoxModel.addElement(i);
}
for (int i = 1; i <= 12; i++) {
monthComboBoxModel.addElement(i);
}
for (int i = 1; i <= 31; i++) {
day31ComboBoxModel.addElement(i);
if(i <= 30) day30ComboBoxModel.addElement(i);
if(i <= 29) day29ComboBoxModel.addElement(i);
if(i <= 28) day28ComboBoxModel.addElement(i);
}
yearComboBox = new JComboBox(yearComboBoxModel);
yearComboBox.setSelectedIndex(116);
monthComboBox = new JComboBox(monthComboBoxModel);
monthComboBox.setSelectedIndex(0);
dayComboBox = new JComboBox(day31ComboBoxModel);
dayComboBox.setSelectedIndex(0);
JPanel mainPanel = new JPanel();
resultText = new JTextField(12);
resultText.setEnabled(false);
ItemListener changeItemListener = new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
String result = yearComboBox.getSelectedItem()+"年"+monthComboBox.getSelectedItem()+"月"+dayComboBox.getSelectedItem()+"日";
resultText.setText(result);
}
}
};
ItemListener selectItemListener = new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
//如果选中了一个
if (e.getStateChange() == ItemEvent.SELECTED) {
//这里写你的任务 ,比如取到现在的值
int daySelectIndex = dayComboBox.getSelectedIndex();
switch (monthComboBox.getSelectedIndex()+1) {
case 4:
case 6:
case 9:
case 11:{
dayComboBox.setModel(day30ComboBoxModel);
dayComboBox.setSelectedIndex(0);
break;
}
case 2:{
int year = (int)yearComboBox.getSelectedItem();
if(year%4==0 && year%100!=0){
dayComboBox.setModel(day29ComboBoxModel);
}else{
dayComboBox.setModel(day28ComboBoxModel);
}
dayComboBox.setSelectedIndex(0);
break;
}
default:{
dayComboBox.setModel(day31ComboBoxModel);
dayComboBox.setSelectedIndex(0);
break;
}
}
dayComboBox.setSelectedIndex(daySelectIndex);
}
}
};
//监听选中
monthComboBox.addItemListener(selectItemListener);
yearComboBox.addItemListener(selectItemListener);
//监听修改
monthComboBox.addItemListener(changeItemListener);
yearComboBox.addItemListener(changeItemListener);
dayComboBox.addItemListener(changeItemListener);
mainPanel.add(yearComboBox);
mainPanel.add(monthComboBox);
mainPanel.add(dayComboBox);
mainPanel.add(resultText);
this.add(mainPanel);
}
public static void main(String[] args) {
DateSelect dateSelect = new DateSelect();
dateSelect.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
dateSelect.setVisible(true);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询