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

前回の質問から、ソートまで進みました。
足し算のプログラムの結果(2つしかありませんけど)、昇順にしたいと思います。
どの位置にプログラムを追加すれば良いんでしょうか?
なかなか思うように動かないので、よろしくお願いします。

package sample;

/*
additionクラス
キーボード2つの数字を入力後、その足し算結果を返す
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class addition
{
//mainメソッドが初めに呼ばれる
public static void main(String args[]) throws IOException
{

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

System.out.print("aを入力してください:");
String str1 = br.readLine();
System.out.print("bを入力してください:");
String str2 = br.readLine();
System.out.print("cを入力してください:");
String str3 = br.readLine();

int a = Integer.parseInt(str1);
int b = Integer.parseInt(str2);
int c = Integer.parseInt(str3);

System.out.println("aは"+ a + "です"); //変数aの中身を表示
System.out.println("bは"+ b + "です"); //変数bの中身を表示
System.out.println("cは"+ c + "です"); //変数cの中身を表示

int d; //結果を入れる変数
int e; //結果を入れる変数
d = a+b; //演算して代入
e = a+c; //演算して代入

System.out.println(a + "+" + b +"=" + d +"です" );
System.out.println(a + "+" + b +"=" + e +"です" );



}
}

A 回答 (9件)

文字数オーバーしますので これで理解してください。


   /**
* This method initializes jTextField3
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField3() {
if (jTextField3 == null) {
jTextField3 = new JTextField();
jTextField3.setBounds(new Rectangle(122, 175, 184, 27));
jTextField3.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent e) {
System.out.println("jTextField3");

String str = jTextField1.getText();
int a = Integer.parseInt(str);
str = jTextField2.getText();
int b = Integer.parseInt(str);
int c=a+b;
str=Integer.toString(c);
jTextField3.setText(str);
jTextField1.requestFocus();

}
});
}
return jTextField3;
}
    • good
    • 0
この回答へのお礼

これは分かりやすかったです。
ありがとうございました。

お礼日時:2018/10/29 20:28

>GUIコンポーネント.setText(new String(new char[10]).replace("\0", "W"));


>「GUIコンポーネント.getPreferredSize().width、etPreferredSize().height」をGUIコンポーネント.setSizeで設定する。
>最後にGUIコンポーネント.setText("")でクリアーしてやる。

この手法を使ってプログラミングしました。

Java GUIデモ(加算、ソート) 2
http://ashtarte.pa.land.to/utf8/smt.cgi?r+sara/& …
    • good
    • 0
この回答へのお礼

ありがとうございます。
おかげでいろいろと知識が身についてきました。
今はGUIを作成中です。

お礼日時:2018/10/29 20:24

>No.6 回答者: amanojaku6



>プロポーショナルフォントの最大幅の「"W"」(大文字)が「10」個表示可能な事が保障される

申し訳ございません、完全な保障ではありません、GUIコンポーネントによっては その文字数を超えると省略文字「...」(半角3文字分?)みたいな文字が入るので。
    • good
    • 0

>No.5 回答者: amanojaku6



>「GUIコンポーネント.getPreferredSize().width、etPreferredSize().height」をGUIコンポーネント.setSizeで設定する。
>これでプロポーショナルフォントの最大幅の「"W"」(大文字)が「10」個入る事が保障される。

「入る」と言う表現は不適切でした、プロポーショナルフォントの最大幅の「"W"」(大文字)が「10」個表示可能な事が保障される、です。
    • good
    • 0

>No.4 回答者: amanojaku6



>「GUIコンポーネント.getPreferredSize().width、etPreferredSize().height」をGUIコンポーネント.setSizeで設定する。

「GUIコンポーネント.getPreferredSize().width、GUIコンポーネント.getPreferredSize().height」をGUIコンポーネント.setSizeで設定する。
位置も同時に設定可能ならGUIコンポーネント.setBoundsで良い。
    • good
    • 0

>No.3 回答者: amanojaku6



申し訳ございません、もっと簡単な方法がありました。

GUIコンポーネント.setText(new String(new char[10]).replace("\0", "W"));
「10」は文字数、「"W"」(大文字)はプロポーショナルフォントの中で一番 幅が広い。
「GUIコンポーネント.getPreferredSize().width、etPreferredSize().height」をGUIコンポーネント.setSizeで設定する。
これでプロポーショナルフォントの最大幅の「"W"」(大文字)が「10」個入る事が保障される。
最後にGUIコンポーネント.setText("")でクリアーしてやる。
※GUIコンポーネントが表示されてなくても使えます。
    • good
    • 0

>No.2 回答者: amanojaku6



厳密に(というか本来は そうすべきなんですが)GUIコンポーネントの縦サイズを決定したい場合は

GUIコンポーネント.getGraphics()でGraphicsオブジェクト(インスタンス)を取得。
Graphicsオブジェクト(インスタンス).getFontMetrics()でFontMetricsオブジェクト(インスタンス)を取得。
FontMetricsオブジェクト(インスタンス).getHeight()でテキストの行の高さを取得。
GUIコンポーネントの縦サイズにはgetHeight()より少し大きめに設定してやる。
GUIコンポーネントの横サイズはgetHeight()を何倍かにしておけば良い。
(注).ただし、「GUIコンポーネント.getGraphics()」は実際にGUIコンポーネントが表示されてからでないとNullPointerExceptionが発生してしまう。
    • good
    • 0

Java GUIデモ(加算、ソート)


http://ashtarte.pa.land.to/utf8/smt.cgi?r+sara/& …
    • good
    • 0

//----ソートはデータの並べ替えなので 1個の変数ではできないので新たに配列を追加して表示してみました。




import javax.swing.JFrame;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;



import java.util.Arrays; //追加


public class grtest extends JFrame {

public static void main(String args[]) throws IOException
{
int[] dat01 = new int[5]; //空箱5個用意
int[] dat02 = new int[5]; //空箱5個用意

int i,loop; //ループ用の変数その他


BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

for(loop=0; loop<5; ++loop)
{
System.out.print("aを入力してください:");
String str1 = br.readLine();
System.out.print("bを入力してください:");
String str2 = br.readLine();
System.out.print("cを入力してください:");
String str3 = br.readLine();

int a = Integer.parseInt(str1);
int b = Integer.parseInt(str2);
int c = Integer.parseInt(str3);

System.out.println("aは"+ a + "です"); //変数aの中身を表示
System.out.println("bは"+ b + "です"); //変数bの中身を表示
System.out.println("cは"+ c + "です"); //変数cの中身を表示

int d; //結果を入れる変数
int e; //結果を入れる変数
d = a+b; //演算して代入
e = a+c; //演算して代入

dat01[loop]=d;
dat02[loop]=e;


System.out.println(loop+"回目 "+a + "+" + b +"=" + d +"です" );
System.out.println(loop+"回目 "+a + "+" + b +"=" + e +"です" );
System.out.println("\n\n\n");

}
System.out.println("\n\n\n");

//-----ソートなし表示 取り合えず dat01だけ表示あとでついかしてください。
System.out.println("ソートなし表示");
for(loop=0; loop<5; ++loop)
{
System.out.println(dat01[loop] );

}

Arrays.sort(dat01); //---ソート関数の呼び出し 


System.out.println("ソートあり表示");
for(loop=0; loop<5; ++loop)
{
System.out.println(dat01[loop] );
}

}
}
    • good
    • 0
この回答へのお礼

ありがとうございます。
数をこなさないと、絵が思い浮かばないですね・・・
それでもかなり進んだかな?

お礼日時:2018/10/29 20:26

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