コードが汚いのはお察し
import java.math.BigDecimal;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Main extends JFrame implements ActionListener{
JButton[] button = new JButton[4];
JTextField field;
JLabel label,ans;
JRadioButton[] rButton = new JRadioButton[4];
ButtonGroup group;
int rby = 70;
public Main() {
this.setBounds(100, 100, 400, 300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(null);
//ボタン宣言
button[0] = new JButton("KB");
button[1] = new JButton("MB");
button[2] = new JButton("GB");
button[3] = new JButton("TB");
field = new JTextField();
label = new JLabel("変換する数値の単位を選択してください");
ans = new JLabel("ここに結果");
//ラジオボタン宣言
rButton[0] = new JRadioButton("KB",true);
rButton[1] = new JRadioButton("MB");
rButton[2] = new JRadioButton("GB");
rButton[3] = new JRadioButton("TB");
group = new ButtonGroup();
//ラジオボタンのButtonGroup追加とadd
for(int i = 0; i < rButton.length; i++) {
group.add( rButton[i] );
this.add( rButton[i] );
rButton[i].addActionListener(this);
}
this.add(label); this.add(ans);
label.setBounds(rby ,30 ,240 ,15);
ans.setBounds(rby,180,240,15);
//ラジオボタンの位置・大きさ指定
rButton[0].setBounds(rby * 1 ,50 ,50 ,15);
rButton[1].setBounds(rby * 2 ,50 ,50 ,15);
rButton[2].setBounds(rby * 3 ,50 ,50 ,15);
rButton[3].setBounds(rby * 4 ,50 ,50 ,15);
this.add(field);
field.setBounds(70 ,75 ,rby * 4 ,40);
//ボタンのadd
for(int i = 0; i < button.length; i++) {
this.add( button[i] );
button[i].addActionListener(this);
}
//ボタンの位置・大きさ指定
button[0].setBounds(rby * 1 ,130 ,55 ,40);
button[1].setBounds(rby * 2 ,130 ,55 ,40);
button[2].setBounds(rby * 3 ,130 ,55 ,40);
button[3].setBounds(rby * 4 ,130 ,55 ,40);
}
public void actionPerformed(ActionEvent e) {
double num = 0;
if(rButton[0].isSelected() ){ //kb
if(e.getSource() == button[0] ) {
try{
num = Integer.parseInt( field.getText() );
ans.setText( String.valueOf(num) );
} catch(NumberFormatException ex) {
ans.setText("数字じゃないものが含まれています");
}
}
if(e.getSource() == button[1] ) {
try{
num = Integer.parseInt( field.getText() ) / 1024.0;
BigDecimal bd = new BigDecimal( String.valueOf(num) );
num = bd.setScale(1, BigDecimal.ROUND_DOWN).doubleValue();
ans.setText( String.valueOf(num) );
} catch(NumberFormatException ex) {
ans.setText("数字じゃないものが含まれています");
}
}
if(e.getSource() == button[2] ) {
try{
num = Integer.parseInt( field.getText() ) / 1024.0 / 1024.0;
BigDecimal bd = new BigDecimal( String.valueOf(num) );
num = bd.setScale(1, BigDecimal.ROUND_DOWN).doubleValue();
ans.setText( String.valueOf(num) );
} catch(NumberFormatException ex) {
ans.setText("数字じゃないものが含まれています");
}
}
if(e.getSource() == button[3] ) {
try{
num = Integer.parseInt( field.getText() ) / 1024.0 / 1024.0 / 1024.0;
BigDecimal bd = new BigDecimal( String.valueOf(num) );
num = bd.setScale(1, BigDecimal.ROUND_DOWN).doubleValue();
ans.setText( String.valueOf(num) );
} catch(NumberFormatException ex) {
ans.setText("数字じゃないものが含まれています");
}
}
}
if(rButton[1].isSelected() ){ //mb
if(e.getSource() == button[0] ) {
try{
num = Integer.parseInt( field.getText() ) * 1024.0;
BigDecimal bd = new BigDecimal( String.valueOf(num) );
num = bd.setScale(1, BigDecimal.ROUND_DOWN).doubleValue();
ans.setText( String.valueOf(num) );
} catch(NumberFormatException ex) {
ans.setText("数字じゃないものが含まれています");
}
}
if(e.getSource() == button[1] ) {
try{
num = Integer.parseInt( field.getText() );
BigDecimal bd = new BigDecimal( String.valueOf(num) );
num = bd.setScale(1, BigDecimal.ROUND_DOWN).doubleValue();
ans.setText( String.valueOf(num) );
} catch(NumberFormatException ex) {
ans.setText("数字じゃないものが含まれています");
}
}
if(e.getSource() == button[2] ) {
try{
num = Integer.parseInt( field.getText() ) / 1024.0;
BigDecimal bd = new BigDecimal( String.valueOf(num) );
num = bd.setScale(1, BigDecimal.ROUND_DOWN).doubleValue();
ans.setText( String.valueOf(num) );
} catch(NumberFormatException ex) {
ans.setText("数字じゃないものが含まれています");
}
}
if(e.getSource() == button[3] ) {
try{
num = Integer.parseInt( field.getText() ) / 1024.0 / 1024.0;
BigDecimal bd = new BigDecimal( String.valueOf(num) );
num = bd.setScale(1, BigDecimal.ROUND_DOWN).doubleValue();
ans.setText( String.valueOf(num) );
} catch(NumberFormatException ex) {
ans.setText("数字じゃないものが含まれています");
}
}
}
if(rButton[2].isSelected() ){ //gb
if(e.getSource() == button[0] ) {
try{
num = Integer.parseInt( field.getText() ) * 1024.0 * 1024.0;
BigDecimal bd = new BigDecimal( String.valueOf(num) );
num = bd.setScale(1, BigDecimal.ROUND_DOWN).doubleValue();
ans.setText( String.valueOf(num) );
} catch(NumberFormatException ex) {
ans.setText("数字じゃないものが含まれています");
}
}
if(e.getSource() == button[1] ) {
try{
num = Integer.parseInt( field.getText() ) * 1024.0;
BigDecimal bd = new BigDecimal( String.valueOf(num) );
num = bd.setScale(1, BigDecimal.ROUND_DOWN).doubleValue();
ans.setText( String.valueOf(num) );
} catch(NumberFormatException ex) {
ans.setText("数字じゃないものが含まれています");
}
}
if(e.getSource() == button[2] ) {
try{
num = Integer.parseInt( field.getText() );
BigDecimal bd = new BigDecimal( String.valueOf(num) );
num = bd.setScale(1, BigDecimal.ROUND_DOWN).doubleValue();
ans.setText( String.valueOf(num) );
} catch(NumberFormatException ex) {
ans.setText("数字じゃないものが含まれています");
}
}
if(e.getSource() == button[3] ) {
try{
num = Integer.parseInt( field.getText() ) / 1024.0;
BigDecimal bd = new BigDecimal( String.valueOf(num) );
num = bd.setScale(1, BigDecimal.ROUND_DOWN).doubleValue();
ans.setText( String.valueOf(num) );
} catch(NumberFormatException ex) {
ans.setText("数字じゃないものが含まれています");
}
}
}
if(rButton[3].isSelected() ){ //tb
long lo;
if(e.getSource() == button[0] ) {
try{
lo = Integer.parseInt( field.getText() ) * 1024 * 1024 * 1024;
ans.setText( String.valueOf( lo) );
} catch(NumberFormatException ex) {
ans.setText("数字じゃないものが含まれています");
} }
if(e.getSource() == button[1] ) {
try{
lo = Integer.parseInt( field.getText() ) * 1024 * 1024;
ans.setText( String.valueOf( lo) );
} catch(NumberFormatException ex) {
ans.setText("数字じゃないものが含まれています");
}
}
if(e.getSource() == button[2] ) {
try{
num = Integer.parseInt( field.getText() ) * 1024.0;
BigDecimal bd = new BigDecimal( String.valueOf(num) );
num = bd.setScale(1, BigDecimal.ROUND_DOWN).doubleValue();
ans.setText( String.valueOf(num) );
} catch(NumberFormatException ex) {
ans.setText("数字じゃないものが含まれています");
}
}
if(e.getSource() == button[3] ) {
try{
num = Integer.parseInt( field.getText() );
BigDecimal bd = new BigDecimal( String.valueOf(num) );
num = bd.setScale(1, BigDecimal.ROUND_DOWN).doubleValue();
ans.setText( String.valueOf(num) );
} catch(NumberFormatException ex) {
ans.setText("数字じゃないものが含まれています");
}
}
}
}
public static void main(String[] args) {
Main m = new Main();
m.setVisible( true );
}
}