2017-08-16 25 views
-2

私は日付が付いた申請書を作成しています.3つの別々のコンボボックスで日付を入力することができます。私はLocalDateに入れるために、選択された項目をintに変換する方法を知っていますが、if文全体がなくても月を効率的に行う方法はわかりません。ここでコンボボックスから月を取得して日付を月にするには

はリストである:ここでは

private static String[] months = {"Month", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; 

はコンボボックスです:あなたは、リスナー(addActionListener)を必要とする任意のヘルプ

+0

Java 8( 'java.time.LocalDate')からの' LocalDate'はありますか?また、日、月、年( 'int'値)を取得し、' LocalDate'を作成するか、日付から値を取得するか、あなたが何をしようとしているのか明確ではありませんか?または、他の何か? –

+0

何をしようとしているのは、コンボボックスから月を取得してMonth.JANUARY – Bravecity

+0

に行くことです。 'Month.of(combo.getSelectedIndex())' - 選択されたインデックスの値は1(1月)から12(12月)、それ以外の場合は例外が発生します。 –

答えて

1

ため

JComboBox startDateD = new JComboBox(days); 
    JComboBox startDateM = new JComboBox(months); 
    JComboBox startDateY = new JComboBox(years); 

おかげで、内部のソースを取得しますオーバーライド方法actionPerformed ...

使用この例は参考になります(Month enumはjava8が必要です)。

public static void main(String[] args) { 
    JFrame someFrame = new JFrame(); 
    someFrame.setTitle("JComboBox Months"); 
    someFrame.setSize(250, 250); 
    JPanel panel = new JPanel(); 

    JComboBox<Month> jcombo = new JComboBox<>(Month.values()); 
    panel.add(jcombo); 
    jcombo.addActionListener(e -> { 
     Month selMonth = (Month) ((JComboBox<Month>) e.getSource()).getSelectedItem(); 
     System.out.println(selMonth); 
    }); 
    someFrame.add(panel); 
    someFrame.setVisible(true); 
} 
関連する問題