markin1
É só você colocar um Listener no combo no evento itemStateChanged assim quando mudar o item carrega o combo de dias conforme o mês selecionado.
Ironlynx
RodrigoLuz, tem vários exemplos de como fazer isso aqui mesmo no fórum.Aí vai um:
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class MyComboTest extends JFrame{
String [] genderItem={"Female","Male"};
JComboBox genderCombo=new JComboBox(genderItem);
String [] smokeItem={"Never","Rare","Frequently","All day"};
JComboBox smokeCombo=new JComboBox(smokeItem);
String [] drinkItem={"Never","Rare","Frequently","Heavily"};
JComboBox drinkCombo=new JComboBox(drinkItem);
String [] statusItem={"Select the option:","Moderate","Normal","Insane"};
JComboBox statusCombo=new JComboBox(statusItem);
JTextField category=new JTextField();
JTextField resultField;
//instance variables
String gender="Female";
int smoke=0, drink=0;
public MyComboTest(){
super("Testing your health");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().add(createPane());
pack();
}
private JPanel createPane(){
JPanel jp = new JPanel(new GridLayout(0, 2, 5, 5));
jp.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
category.setEditable(false);
jp.add(new JLabel("Your gender:"));
jp.add(genderCombo);
jp.add(new JLabel("Smoke:"));
jp.add(smokeCombo);
jp.add(new JLabel("Drink:"));
jp.add(drinkCombo);
jp.add(new JLabel("Your way of life:"));
jp.add(statusCombo);
jp.add(new JLabel());
jp.add(new JLabel());
jp.add(new JLabel());
jp.add(new JLabel());
jp.add(new JLabel("Results"));
jp.add(category);
genderCombo.setSelectedIndex(0);
genderCombo.addActionListener(new ComboListener());
smokeCombo.setSelectedIndex(0);
smokeCombo.addActionListener(new ComboListener());
drinkCombo.setSelectedIndex(0);
drinkCombo.addActionListener(new ComboListener());
statusCombo.setSelectedIndex(0);
statusCombo.addActionListener(new ComboListener());
return jp;
}//end creatPane()
private class ComboListener implements ActionListener{
public void actionPerformed(ActionEvent ae){
int gender=genderCombo.getSelectedIndex();
int s=smokeCombo.getSelectedIndex();
int d=drinkCombo.getSelectedIndex();
int stCombo=statusCombo.getSelectedIndex();
String categoryRisk=returnHealthStatus(getDrinkStatus(),getSmokeStatus());
if(gender==0){
setGender("Female");
}else{
setGender("Male");
}
if(s==0){
if(getGender().equals("Female"))
setSmokeStatus(0);
else if(getGender().equals("Male"))
setSmokeStatus(0);
}else if(s==1){
if(getGender().equals("Female"))
setSmokeStatus(2);
else if(getGender().equals("Male"))
setSmokeStatus(2);
}else if(s==2){
if(getGender().equals("Female"))
setSmokeStatus(5);
else if(getGender().equals("Male"))
setSmokeStatus(4);
}else if(s==3){
if(getGender().equals("Female"))
setSmokeStatus(7);
else if(getGender().equals("Male"))
setSmokeStatus(7);
}
if(d==0){
if(getGender().equals("Female"))
setDrinkStatus(0);
else if(getGender().equals("Male"))
setDrinkStatus(1);//mens lie too much!
}else if(d==1){
if(getGender().equals("Female"))
setDrinkStatus(2);
else if(getGender().equals("Male"))
setDrinkStatus(2);
}else if(d==2){
if(getGender().equals("Female"))
setDrinkStatus(6);
else if(getGender().equals("Male"))
setDrinkStatus(7);
}else if(d==3){
if(getGender().equals("Female"))
setDrinkStatus(9);
else if(getGender().equals("Male"))
setDrinkStatus(9);
}
if(stCombo==0){
category.setText("None");
}else if(stCombo==1){
if(categoryRisk.equals("B"))
category.setText("You have a normal health");
else if(categoryRisk.equals("C"))
category.setText("You have a wonderful health");
else
category.setText("Some risks to your health...");
}else if(stCombo==2){
if(categoryRisk.equals("B"))
category.setText("Some risks to your health!");
else if(categoryRisk.equals("C"))
category.setText("Normal health");
else
category.setText("Bad,Bad, lifestyle!");
}else if(stCombo==3){
if(categoryRisk.equals("B"))
category.setText("Almost dead!");
else if(categoryRisk.equals("C"))
category.setText("Bad,Bad, lifestyle!");
else
category.setText("Are you alive?");
}
}//end actionPerformed method
}//end ComboListener
public String returnHealthStatus(int smoke,int drink){
int healthRisk=smoke+drink;
System.out.println("Health Risk:"+healthRisk);
if(healthRisk<=6)
return "C";
else if(healthRisk>6&&healthRisk<=12)
return "B";
else
return "A";
}
public void setGender(String flag){
this.gender=flag;
}
public String getGender(){
return gender;
}
public void setDrinkStatus(int flag){
this.drink=flag;
}
public int getDrinkStatus(){
return drink;
}
public void setSmokeStatus(int flag){
this.smoke=flag;
}
public int getSmokeStatus(){
return smoke;
}
private static void createAndShowGUI(){
MyComboTest swingApp = new MyComboTest();
swingApp.setVisible(true);
}
public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable(){
public void run()
{
createAndShowGUI();
}
});
}
}