dポイントプレゼントキャンペーン実施中!

初めまして!
最近Javaを勉強し始めてみたのですが行き詰ってしまったので質問失礼します。
今GUI(?)で『BMI測定』作ろうとしています。

デザインは下記のようにしてみました。
http://www.geocities.jp/inot90/bmi.JPG

身長のラベル名が『sinlabel』
体重のラベル名が『tailabel』
BMI値のラベル名が『BMIti』です。

体重と身長のラベルに数字を打ち込み『測定スタート』ボタンを押してBMI値のラベルに数値を表示させたいのですが『測定スタート』を押してどう表示させるかがわかりません。

BMIの計算式は[体重]/([身長]*[身長])です。

解説と答えのプログラムを教えて頂けないでしょうか?
よろしくお願いします。

A 回答 (2件)

じゃあ、昔作ったこれあげるから



解析して勉強しな

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class BmiCalclation extends AbstractSwing implements ActionListener {

//テキスト入力用
private JTextField textField;

//クリアボタン
private JButton clearButton;

//result表示用
private JLabel label;

//ボタン格納用パネル
private JPanel btnPanel;

//クリアボタン表示名
private static final String CLEAR = "calclation";

//Windows Look&Feel
protected static final String WINDOWS_LA = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";

//Metal
protected static final String METAL_LA = "javax.swing.plaf.metal.MetalLookAndFeel";

public BmiCalclation(final String frameTitle) {

super(frameTitle);

//各部品のインスタンス作成
textField = new JTextField();
label = new JLabel(" ");//pack用にパディング
label.setHorizontalAlignment(JLabel.CENTER);
clearButton = new JButton(CLEAR);
btnPanel = new JPanel();

//ボタンをパネルに格納
btnPanel.add(clearButton);

//パネル等をコンテンツ区画に格納
getContentPane().add(textField, BorderLayout.NORTH);
getContentPane().add(label, BorderLayout.CENTER);
getContentPane().add(btnPanel, BorderLayout.SOUTH);
pack();
centering(this);

//リスナー登録
clearButton.addActionListener(this);

}

public static void main(String[] args) {

BmiCalclation swingEx = new BmiCalclation("TaskTimerText");

swingEx.setVisible(true);
swingEx.setDefaultCloseOperation(EXIT_ON_CLOSE);

}

public void actionPerformed(ActionEvent ae) {

if (ae.getActionCommand().equals(CLEAR)) {
int length = label.getText().length();
label.setText("入力文字は[" + length +"Byte]です");
}
}

public static void centering(final JFrame frameObject) {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frameObject.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frameObject.setLocation((screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
}

}

参考URL:http://www.javadrive.jp/
    • good
    • 0
この回答へのお礼

ありがとうございます。何とか動きました。
URLも張っていただき感謝です。参考にさせていただきます。

お礼日時:2005/09/07 17:47

勉強をしているのであれば、全部答えを教えて貰うのではなく一つ一つ解決していきましょう。


で、分からないことにぶち当たってから初めて質問をすべきではないでしょうか。
「解説と答えのプログラムを教えて頂けないでしょうか?」っていうのはいわゆる丸投げといわれる質問方法です。

まずやりたいことを分解してみてください。
たとえば
・Java で GUI プログラミングをするための API
・ウィンドウを表示する方法
・ボタンやラベルを配置する方法
・ボタン押下のタイミングで計算ロジックを走らせる方法
・BMI の計算式の Java での表現方法
・計算結果を画面に反映させる方法
などです。
それぞれ勉強していってつまづいたら、端的な形の質問に落とし込みましょう。
    • good
    • 0
この回答へのお礼

申し訳ありません。自分で考えてあれこれやってたのですがまったく動きが見られずつい質問をしてしまいました。どう説明すればいいのかもわからず、あのような質問になってしまいました。
以後気をつけます。

お礼日時:2005/09/07 17:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!