ОК, я пытаюсь создать графический интерфейс с JScrollPane, который через JTextArea выведет массив из ints по одной строке за раз. Я использую некоторые методы, которые я создал для назначения для обработки данных, и один из них работает с данными в следующем примере (я не могу показать методы, потому что это домашняя работа, которая еще не наступила). Методы были протестированы и работают нормально, поэтому в этом вопросе не нужно. Пока что текстовая область будет отображаться в графическом интерфейсе, но не будет прикреплена к ней панель прокрутки, или будет отображаться только jlabel с результатами работы, выполненной с помощью метода. Может кто-то взглянуть на мой код и рассказать мне, что я делаю неправильно, потому что я прошел через это как 50 раз и не могу заставить графический интерфейс вести себя.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 public void main (String args []) 'для [SSCCE] (http://www.sscce.org), чтобы люди могли скопировать пасту и протестировать ваш код. – nachokk
Я добавил main, а также 1 метод, который я использую в этом примере –
ОК, поэтому я перезапустил netbeans, и теперь его текстовая область и scrollpane появляются в графическом интерфейсе, но они занимают весь графический интерфейс, даже когда я добавляю параметр размера в текстовую область, и jlabel, который должен быть справа от текстовой области, все еще не существует –