Lecture

Java プログラミング入門

このページは、学部2年生向け授業である、「マルチメディアプログラミング実習」 のために用意しました。

(Wikiの仕様で大文字小文字が混在した英単語に疑問符?が追加されるところがありますが、無視してください。)

第13章 様々なコンポーネントとレイアウト

ラジオボタンとチェックボックス

JRadioButton.png

ラジオボタンとチェックボックスの例です。ラジオボタンを排他制御するには、ボタングループを使います。

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class JRadioButtonSample extends JFrame {

   public void initialize() {
       this.setTitle("Radio Buttons");

       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();
   }
   
}

ラジオボタンとラベル

上で作ったプログラムに、JLabelのラベルを一枚追加しましょう。下部に追加します。

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();
   }
   
}

軽減税率計算アプリ

とあるレストランのランチは税別1,000円です。お店で食べると消費税は10%で、持ち帰りだと8%です。さらにランチにはオプションがあって、ドリンクを追加すると税別200円、サラダを追加すると税別300円、ケーキを追加すると税別500円です。全部追加すると税別2,000円です。このレストランでアルバイトする友人のために、この金額を計算するアプリを作ってあげることにしました。以下のように動くよう作ってください。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS