

前回の質問から、ソートまで進みました。
足し算のプログラムの結果(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 +"です" );
}
}
No.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;
}
No.8
- 回答日時:
>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/& …
No.7
- 回答日時:
>No.6 回答者: amanojaku6
>プロポーショナルフォントの最大幅の「"W"」(大文字)が「10」個表示可能な事が保障される
申し訳ございません、完全な保障ではありません、GUIコンポーネントによっては その文字数を超えると省略文字「...」(半角3文字分?)みたいな文字が入るので。
No.6
- 回答日時:
>No.5 回答者: amanojaku6
>「GUIコンポーネント.getPreferredSize().width、etPreferredSize().height」をGUIコンポーネント.setSizeで設定する。
>これでプロポーショナルフォントの最大幅の「"W"」(大文字)が「10」個入る事が保障される。
「入る」と言う表現は不適切でした、プロポーショナルフォントの最大幅の「"W"」(大文字)が「10」個表示可能な事が保障される、です。
No.5
- 回答日時:
>No.4 回答者: amanojaku6
>「GUIコンポーネント.getPreferredSize().width、etPreferredSize().height」をGUIコンポーネント.setSizeで設定する。
「GUIコンポーネント.getPreferredSize().width、GUIコンポーネント.getPreferredSize().height」をGUIコンポーネント.setSizeで設定する。
位置も同時に設定可能ならGUIコンポーネント.setBoundsで良い。
No.4
- 回答日時:
>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コンポーネントが表示されてなくても使えます。
No.3
- 回答日時:
>No.2 回答者: amanojaku6
厳密に(というか本来は そうすべきなんですが)GUIコンポーネントの縦サイズを決定したい場合は
GUIコンポーネント.getGraphics()でGraphicsオブジェクト(インスタンス)を取得。
Graphicsオブジェクト(インスタンス).getFontMetrics()でFontMetricsオブジェクト(インスタンス)を取得。
FontMetricsオブジェクト(インスタンス).getHeight()でテキストの行の高さを取得。
GUIコンポーネントの縦サイズにはgetHeight()より少し大きめに設定してやる。
GUIコンポーネントの横サイズはgetHeight()を何倍かにしておけば良い。
(注).ただし、「GUIコンポーネント.getGraphics()」は実際にGUIコンポーネントが表示されてからでないとNullPointerExceptionが発生してしまう。
No.1
- 回答日時:
//----ソートはデータの並べ替えなので 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] );
}
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語のポインターに関する警告
-
JSPやサーブレットでSystem.out...
-
改行の判定方法
-
有効数字以下を四捨五入(Java)
-
java 会員登録プログラム
-
コメントアウトされたエスケー...
-
文字列の引き算
-
[JAVA]try 内の変数を外で!?
-
ファイル名に変数を使う(Java)
-
セッションのリセット
-
データベースに接続できません。
-
nullcline
-
Webアプリケーション checkbox...
-
オブジェクトの中のプロパティ...
-
ORA-01858: 数値を指定する箇所...
-
System.err. printlnとSystem.o...
-
IF関数でEmpty値を設定する方法。
-
動的配列が存在(要素が有る)か...
-
C言語 重複しない4ケタの乱数...
-
JSPでの計算結果表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のポインターに関する警告
-
JSPやサーブレットでSystem.out...
-
EclipseでJava
-
[JAVA]try 内の変数を外で!?
-
「続行するには何かキーを押し...
-
文字列の引き算
-
JAVA 文字色変更
-
改行の判定方法
-
エクセルマクロ文で、赤文字セ...
-
Javaのコマンドライン引数を使...
-
全角スペースの判定について
-
JAVAのエラーの意味が分かりま...
-
Javaでカレントディレクトリを...
-
javaで判別式のプログラミング...
-
【Java】再帰的なプログラムで...
-
JAVAのDouble型の小数点以下の...
-
複数行キーボード入力した後に...
-
曜日の取得方法を教えて下さい!
-
文字列の置換について。
-
vb6 オブジェクトライブラリは...
おすすめ情報