Task追加ボタンの実装(準備編) – Javaでデスクトップトップアプリ(予定&ToDo管理)を作る-022
今回からいよいよTask追加ボタンを実装していきます。
様々なGUI部品から情報を取得していくわけですが、今回は準備編です。
Enumの変更
まずは、簡単な前準備です。
PropertyNameのEnumにSTARTHOUR,STARTMINUTE,FINISHHOUR,FINISHMINUTEを追加します。(これは今までやり忘れてました。。。)
[PropertyName.java]
public enum PropertyName {
CATEGORY,CONTEXT,STARTYEAR,STARTMONTH,STARTDATE,STARTWEEK,STARTHOUR,STARTMINUTE,WHETHER,
FINISHYEAR,FINISHMONTH,FINISHDATE,FINISHHOUR,FINISHMINUTE,FINISHWEEK,FINISH;
public String toString(){
switch(this){
case CATEGORY:
return "category";
case CONTEXT:
return "context";
case STARTYEAR:
return "startYear";
case STARTMONTH:
return "startMonth";
case STARTDATE:
return "startDate";
case STARTWEEK:
return "startWeek";
case STARTHOUR:
return "startHour";
case STARTMINUTE:
return "startMinute";
case WHETHER:
return "whether";
case FINISHYEAR:
return "finishYear";
case FINISHMONTH:
return "finishMonth";
case FINISHDATE:
return "finishDate";
case FINISHWEEK:
return "finishWeek";
case FINISHHOUR:
return "finishHour";
case FINISHMINUTE:
return "finishMinute";
case FINISH:
return "finish";
default:
System.out.println("Enumにありません");
return null;
}
}
}
AddModePanelのフィールド変数の変更
次に、AddModePanelのフィールド変数を変更します。
GUIの部品をstaticフィルードにしておきます。
こうすることで、フィールド変数は
「各インスタンスごとにひとつづつ存在する状態」から「AddModePanelにひとつ存在の状態」になり、
他のクラスからアクセスすることができるようになります。
(textField1⇒taskNameField,textFIeld2⇒descriptionFieldに名前を変更します)
[AddModePanel.java]
public class AddModePanel extends JPanel implements ActionListener{
JPanel panel;
static JTextField categoryTextField;
static DefaultComboBoxModel categorymodel;
static JTextField contextTextField;
static DefaultComboBoxModel contextmodel;
static JTextField taskNameField; //textField1から名前変更
static JTextField descriptionField;//textField2から名前変更
static JSpinner spinner;
static JCheckBox ckbox;
static JComboBox minutecombo;
static JComboBox categorycombo;
static JComboBox contextcombo;
static JComboBox hourcombo;
public AddModePanel(){
/*今までのコード*/
AddModePanel.taskNameField=taskNameField;
AddModePanel.descriptionField=descriptionField;
AddModePanel.spinner=spinner;
AddModePanel.ckbox=ckbox;
AddModePanel.hourcombo=hourcombo;
AddModePanel.minutecombo=minutecombo;
AddModePanel.categorycombo=categorycombo;
AddModePanel.contextcombo=contextcombo;
}
public JPanel getPanel(){
return panel;
}
public void actionPerformed(ActionEvent e) {
/*今までのコード*/
}
}
Mainクラスのフィールド変数の変更
MainクラスにBoxをstatic変数として追加します。こうすることでBoxはプログラム内で唯一の存在になります。
[Main.java]
public class Main {
public static Box box;
public static void main(String[] args) {
// TODO Auto-generated method stub
Main.box = new Box();
MainFrame mainframe =new MainFrame("title");
mainframe.setVisible(true);
}
}
次回はボタン追加本編です。
アプリ開発記の次の記事はこちら => Task追加ボタンの実装(本編) – Javaでデスクトップトップアプリ(予定&ToDo管理)を作る-023