- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2019-11-28T18:18:33+09:00","ocha","ocha")
#author("2019-11-28T18:52:51+09:00","ocha","ocha")
[[Lecture]]
*Java プログラミング入門 [#kd7c750b]
このページは、学部2年生向け授業である、「マルチメディアプログラミング実習」
のために用意しました。
(Wikiの仕様で大文字小文字が混在した英単語に疑問符?が追加されるところがありますが、無視してください。)
**第13章 様々なコンポーネントとレイアウト [#qb662dcc]
***項目チェック機能を備えたアプリケーション [#x0af6860]
***ラジオボタンとチェックボックス [#f84fe7de]
#ref(JRadioButton.png)
ラジオボタンとチェックボックスの例です。ラジオボタンを排他制御するには、ボタングループを使います。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class JRadioButtonSample extends JFrame {
public void initialize() {
public void initialize() {
this.setTitle("Radio Buttons");
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JRadioButton radio1 = new JRadioButton("for here");
JRadioButton radio2 = new JRadioButton("to go");
ButtonGroup group = new ButtonGroup();
group.add(radio1);
group.add(radio2);
panel1.setLayout(new GridLayout(2,1));
panel2.setLayout(new GridLayout(3,1));
panel1.add(radio1);
panel1.add(radio2);
panel2.add(new JCheckBox("with Drink"));
panel2.add(new JCheckBox("with Salad"));
panel2.add(new JCheckBox("with Cake"));
Container container = this.getContentPane();
container.add(panel1,BorderLayout.WEST);
container.add(panel2,BorderLayout.EAST);
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main (String args[]) {
JRadioButtonSample jrbs = new JRadioButtonSample();
jrbs.initialize();
}
}
}
***ラジオボタンとラベル [#v8a68d05]
上で作ったプログラムに、JLabelのラベルを一枚追加しましょう。下部に追加します。
#ref(lunch1.png)
ヒント:
ラベルはこんな感じで作ります。センタリングの指定はこのようにします。
JLabel label = new JLabel("1000 yen");
label.setHorizontalAlignment(JLabel.CENTER);
ラベルのためにパネルは用意しなくても良いようです。コンテナにaddすれば良いようです。この時、下部に追加するよう指定します。
container.add(label,BorderLayout.SOUTH);
解答例:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class JRadioButtonSample2 extends JFrame {
public void initialize() {
this.setTitle("Lunch Calc");
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JLabel label = new JLabel("1000 yen");
label.setHorizontalAlignment(JLabel.CENTER);
JRadioButton radio1 = new JRadioButton("for here");
JRadioButton radio2 = new JRadioButton("to go");
ButtonGroup group = new ButtonGroup();
group.add(radio1);
group.add(radio2);
panel1.setLayout(new GridLayout(2,1));
panel2.setLayout(new GridLayout(3,1));
panel1.add(radio1);
panel1.add(radio2);
panel2.add(new JCheckBox("with Drink"));
panel2.add(new JCheckBox("with Salad"));
panel2.add(new JCheckBox("with Cake"));
Container container = this.getContentPane();
container.add(panel1,BorderLayout.WEST);
container.add(panel2,BorderLayout.EAST);
container.add(label,BorderLayout.SOUTH);
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main (String args[]) {
JRadioButtonSample2 jrbs2 = new JRadioButtonSample2();
jrbs2.initialize();
}
}
***軽減税率計算アプリ [#r66f1a41]
とあるレストランのランチは税別1,000円です。お店で食べると消費税は10%で、持ち帰りだと8%です。さらにランチにはオプションがあって、ドリンクを追加すると税別200円、サラダを追加すると税別300円、ケーキを追加すると税別500円です。全部追加すると税別2,000円です。このレストランでアルバイトする友人のために、この金額を計算するアプリを作ってあげることにしました。以下のように動くよう作ってください。