Здравствуйте,
Мой первый вопрос по SOF. У меня проблема с JScrollPane и JList. Я создал класс для списка с помощью метода get, чтобы получить объект списка
package frontend;
import javax.swing.*;
public class GeneratedList
{
private JList<String> List;
public GeneratedList() {
DefaultListModel<String> listModel = new DefaultListModel<>();
listModel.addElement("1");
listModel.addElement("1");
listModel.addElement("1");
listModel.addElement("1");
listModel.addElement("1");
listModel.addElement("1");
listModel.addElement("1");
listModel.addElement("1");
listModel.addElement("1");
listModel.addElement("1");
listModel.addElement("1");
listModel.addElement("1");
listModel.addElement("1");
listModel.addElement("1");
listModel.addElement("1");
List = new JList<>(listModel);
}
public JList<String> getList() {
return List;
}}
И получил класс GUI для создания целого кадра.
package frontend;
import javax.swing.*;
import java.awt.*;
public class GUI
{
JFrame frame = new JFrame("QR Generator");
BorderLayout borderLayout = new BorderLayout();
public static JFormattedTextField inputField = new JFormattedTextField("XX.XXXX.XX");
JButton generateButtton = new JButton("Generate");
JButton printButton = new JButton("Print");
public GUI()
{
frame.setVisible(true);
frame.setLayout(borderLayout);
frame.setSize(new Dimension(200,200));
frame.add(inputField,BorderLayout.NORTH);
frame.add(generateButtton,BorderLayout.NORTH);
frame.add(printButton,BorderLayout.EAST);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setSize(200,300);
frame.add(scrollPane.add(new GeneratedList().getList()));
}}
В этом стиле кода это работает. Список виден, но полос прокрутки нет
вид рамки
Первый вопрос: почему? :) И второй вопрос: почему в этом синтаксисе список не виден во фрейме.
package frontend;
import javax.swing.*;
import java.awt.*;
public class GUI
{
JFrame frame = new JFrame("QR Generator");
BorderLayout borderLayout = new BorderLayout();
public static JFormattedTextField inputField = new JFormattedTextField("XX.XXXX.XX");
JButton generateButtton = new JButton("Generate");
JButton printButton = new JButton("Print");
JScrollPane scrollPane = new JScrollPane();
public GUI()
{
frame.setVisible(true);
frame.setLayout(borderLayout);
frame.setSize(new Dimension(200,200));
frame.add(inputField,BorderLayout.NORTH);
frame.add(generateButtton,BorderLayout.NORTH);
frame.add(printButton,BorderLayout.EAST);
frame.add(scrollPane);
scrollPane.add(new GeneratedList().getList());
}
}
Спасибо за помощь