好吧,我正在嘗試創建一個具有JScrollPane的GUI,它通過JTextArea將一次一行地打印出一列整數。我正在使用一些爲賦值處理數據而創建的方法,並在下面的示例中使用其中一個方法處理數據(我無法顯示方法,因爲它是尚未到期的作業)。這些方法已經過測試並且工作正常,所以在這個問題中不需要它們。到目前爲止,文本區域將顯示在GUI中,但沒有附加滾動窗格,或者只有jlabel會顯示通過該方法完成的工作結果。有人可以看看我的代碼,並告訴我我做錯了什麼,因爲我已經過去了50次,並且無法讓GUI運行。JScrollPane無法在GUI中工作
public class MyClassName extends JFrame{
private JScrollPane myScroll;
private JTextArea myTextArea;
private JLabel myMean;
private JLabel myMedian;
private JLabel myMax;
private JLabel myMin;
private JLabel mySum;
private Container content;
private Font myFont;
private SpringLayout layout;
private MyClassName() {
this(500,300,"TEST TITLE");
}
private MyClassName(int width, int height, String title)
{
this.setVisible(true);
this.setTitle(title);
this.setSize(width, height);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
guiComponent();
}
public void guiComponent()
{
layout = new SpringLayout();
content = this.getContentPane();
int [] test = {50,37,43,12,8,16,32,44,78,92,1,3,66,34};
myTextArea = new JTextArea();
myScroll = new JScrollPane(myTextArea);
content.add(myScroll);
myMean = new JLabel("MEAN : " + MyClassName.mean(test));
for(int count : test)
{
String z = Integer.toString(count);
myTextArea.append('\n' + z);
}
myFont = new Font("Serrif", Font.BOLD, 30);
myMean.setFont(myFont);
content.add(myScroll);
layout.putConstraint(SpringLayout.WEST, myScroll, 20, SpringLayout.WEST, content);
layout.putConstraint(SpringLayout.NORTH, myScroll, 25, SpringLayout.NORTH, content);
content.add(myMean);
layout.putConstraint(SpringLayout.WEST, myMean, 20, SpringLayout.EAST, myScroll);
layout.putConstraint(SpringLayout.NORTH, myMean, 25, SpringLayout.NORTH, content);
}
public static double mean(int[] ar) {
double x = 0;
for (int i = 0; i < ar.length; i++) {
x += ar[i];
}
return x/ar.length;
}
public static void main(String[] args) {
MyClassName test2 = new MyClassName();
}
考慮添加一個'public static void main(String args [])'作爲[SSCCE](http://www.sscce.org),以便人們可以複製粘貼並測試您的代碼。 – nachokk
我添加了main和我在這個例子中使用的1方法 –
OK,所以我重新啓動了netbeans,現在它在GUI中彈出了文本區域和滾動窗格,但它們佔用了整個GUI,即使添加了大小參數到文本區域,而jlabel應該在文本區域的右側,仍然不存在 –