例如,我有一個int類型和大小爲3的數組,它具有元素1,2,3當我嘗試使用循環在JOptionPane
中打印它時,它會生成三個不同的窗格。如何在JOptionPane中打印數組?
當我嘗試:
JOptionPane.showMessageDialog(null, array);
它給垃圾值。
我到處搜索過,但找不到解決方案。如何在選項窗格中顯示數組?
例如,我有一個int類型和大小爲3的數組,它具有元素1,2,3當我嘗試使用循環在JOptionPane
中打印它時,它會生成三個不同的窗格。如何在JOptionPane中打印數組?
當我嘗試:
JOptionPane.showMessageDialog(null, array);
它給垃圾值。
我到處搜索過,但找不到解決方案。如何在選項窗格中顯示數組?
使用Arrays.toString()
爲:
int [] arr = new int [3];
arr[0]=1;
arr[1]=2;
arr[2]=3;
JOptionPane.showMessageDialog(null, Arrays.toString(arr));
嘗試使用Arrays.toString()
:
JOptionPane.showMessageDialog(null, Arrays.toString(array));
默認在Java打印陣列toString()
方法,你叫它,垃圾值。
見你可以試試這個:
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
是,它不會爲你做出不同的窗格。如果您只是一次打印一張String
,您肯定會得到不同的窗格。
如果我想打印兩列數組? – ahmedbatty
請參閱[this]上的示例(http://stackoverflow.com/questions/1399281/how-to-print-multiple-arrays-of-different-types-in-java)頁面以瞭解有關打印多個陣列的想法。 –
您將不得不爲每個數組運行不同的'for'循環,每個數組追加到'StringBuilder'中,然後打印出來。 –
// Wrap the list in a JScrollPane if 'size matters'.
JOptionPane.showMessageDialog(null, new JList(array));
E.G.
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它是對內存中數組的引用。
一個
JList
數組構造需要的對象,因此就需要Integer
,而不是int
..我有一個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));
}
});
}
}
這不是垃圾值。你得到這個值是因爲java'Object'類有'toString'方法,像這樣:'public String toString(){ \t return getClass()。getName()+「@」+ Integer.toHexString(hashCode()); }' – gtiwari333