Checklistツールを作ってみよう2
壮大なる構想を立てて、膨大な人と時間をかけたとしても未完成のソフト
(あるいは、ちゃんと動かないソフト)は何の役にも立ちません。
毎度、管理人イガジーです。
ですから、まずは重要な部分がちゃんと動くモノを目指しましょう。
という訳で、チェックリストツールですが、中心的部分は
JCheckBox というクラスを使えば割とお手軽にできあがります。
クリックすれば、チェックマークに[レ]が入り、もう1度クリックすれば
元に戻ります。
プログラムで必要なのは、そのJCheckBox に文字列を設定し、
縦に並べること(だけ)なのです。
という訳で、プログラム例としては、次のような感じでどうでしょうか。
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class JChecklists0 {
String []lst={
"はぶらし",
"タオル",
"ビニール袋",
"着替え",
"めがね",
"手帳・ペン",
"財布",
"ノートパソコン",
"ACアダプタ",
"携帯充電器",
"文庫本",
};
int items=lst.length;
JFrame f0;
JPanel p0;
JCheckBox []cb =new JCheckBox[items];
Color c0=new Color(255,255,230);
JChecklists0() {
f0=new JFrame("JCheck");
f0.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev) {
System.exit(0);
}
});
p0=new JPanel(new GridLayout((items>6)?items:6,1,0,1));
for (int i=0;i<items;++i) {
cb[i]=new JCheckBox(lst[i]);
cb[i].setBackground(c0);
p0.add(cb[i]);
}
f0.add(p0,BorderLayout.CENTER);
f0.setSize(180,260);
f0.setVisible(true);
}
public static void main(String[] args) {
new JChecklists0();
}
}
まずは、こうした形ででも、「動く」ことが肝要です。
データの保存機能が無くても、パソコンを起動して、電源を切るまでの
「やることリスト」であれば、これで充分でしょう。
毎日の自己暗示にも効果的(かもしれません ^^; )
項目の編集(増減)は、ソースを直接いじればいい。
項目が増えた時の、スクロールについては JScrollPane を
使ったこの記事を参考にして追加してみてください。
項目をクリックしてチェックを入れた時に、色を変えたいと思ったら
class MyJCheckBox extends JCheckBox implements ItemListener {
private static final long serialVersionUID = 1L;
MyJCheckBox(String lbl) {
super(lbl);
this.addItemListener(this);
}
void setColor(){
if (isSelected()) setBackground(c1);
else setBackground(c0);
}
@Override
public void itemStateChanged(ItemEvent arg0) {
setColor();
}
} // class MyJCheckBox
という感じでJCheckBoxをextends して、
ItemListener を入れてしまえば良いでしょう。
c0 や c1 は、色の指定で、例えば
Color c0=new Color(255,255,230); Color c1=Color.LIGHT_GRAY;
という感じで良いのではないかと思います。
Java だとお手軽に作れるのでありがたいですね。
この記事へのコメントはこちら