たとえば、int型とサイズ3の配列があり、要素1、2、3がありJOptionPane
ます。ループを使用して印刷しようとすると、3つの異なるペインが作成されます。
私が試してみると:
JOptionPane.showMessageDialog( null, array );
ガベージ値を与えます。
私はどこでも検索しましたが、解決策を見つけることができませんでした。オプションペインにアレイを表示するにはどうすればよいですか?
たとえば、int型とサイズ3の配列があり、要素1、2、3がありJOptionPane
ます。ループを使用して印刷しようとすると、3つの異なるペインが作成されます。
私が試してみると:
JOptionPane.showMessageDialog( null, array );
ガベージ値を与えます。
私はどこでも検索しましたが、解決策を見つけることができませんでした。オプションペインにアレイを表示するにはどうすればよいですか?
// Wrap the list in a JScrollPane if 'size matters'.
JOptionPane.showMessageDialog(null, new JList(array));
例えば
import javax.swing.*;
public class ArrayDisplay {
public static void main(String[] args) {
final String[] array = {
"JList",
"JTable for 2D array",
"HTML in JLabel",
"Delimited String in JLabel"
};
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JOptionPane.showMessageDialog(null, new JList(array));
}
});
}
}
(配列に関してtoString()
)
ガベージ値を与えます。
あいまいです、はい-ゴミ、いいえ。AFAIUは、メモリ内の配列への参照です。
..int型の配列があります
JList
配列コンストラクターにはオブジェクトが必要であるため、Integer
ではなく必要になることに注意してくださいint
。int[]
これを行うためにから変換するにInteger[]
は:
import javax.swing.*;
public class ArrayDisplay {
public static void main(String[] args) {
int[] arrayPrimitive = {1,2,3};
final Integer[] array = new Integer[arrayPrimitive.length];
for (int ii=0; ii<arrayPrimitive.length; ii++) {
array[ii] = arrayPrimitive[ii];
}
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run() {
JOptionPane.showMessageDialog( null, new JList(array) );
}
});
}
}
使用してみてくださいArrays.toString()
:
JOptionPane.showMessageDialog( null, Arrays.toString(array));
Javaの配列のデフォルトのtoString()
メソッドは、あなたが呼んだように、ガベージ値を出力します。
として使用Arrays.toString ()
:
int [] arr = new int [3];
arr[0]=1;
arr[1]=2;
arr[2]=3;
JOptionPane.showMessageDialog(null, Arrays.toString(arr));
あなたはこれを試すことができます:
StringBuilder builder = new StringBuilder(array.length);
for (int i=0;i<array.length;builder.append(array[i++])) builder.append("\n");
JOptionPane.showMessageDialog(null, builder.toString(), "Printing results", JOptionPane.INFORMATION_MESSAGE);
使用する理由StringBuilder
は、別のペインが作成されないためです。一度に1つずつ印刷するだけの場合String
は、さまざまなペインを取得する必要があります。