РедактироватьScrollPane с JList в Japanel не работает
Вот ваш код, в котором projectList имеет строку слишком длинную, который должен сделать полосу прокрутки появляется. но это не так. Скорее он расширяет размер кадра
import java.awt.BorderLayout;
import javax.swing.*;
public class FooFrame extends JFrame {
private JList jList;
private String[] projectList = {"One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nineeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"};
private DefaultListModel listItems;
private JScrollPane scrollpane;
public FooFrame() {
JLabel lblHeading = new JLabel(
" Demo text");
JPanel mainLayout = new JPanel();
mainLayout.setLayout(new BorderLayout());
mainLayout.add(lblHeading, BorderLayout.NORTH);
jList = new JList(projectList);
// listItems = new DefaultListModel(); // wasted line since you don't use this
jList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
scrollpane = new JScrollPane(jList, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
mainLayout.add(scrollpane);
add(mainLayout);
}
private static void createAndShowGui() {
FooFrame frame = new FooFrame();
frame.setSize(10,10);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String[] args) {
createAndShowGui();
}
}
Странная вещь я заметил, при попытке добавить JList в JScrollPane в Japanel. Если я попытаюсь добавить JList в JscrollPane в рамку напрямую, это делается с легкостью. Если я пытаюсь добавить то же самое, что и положить его в панель (с маской рамки), это не работает для меня.
вот пример кода
JLabel lblHeading = new JLabel(
" Demo text");
JPanel mainLayout = new JPanel();
mainLayout.setLayout(new BorderLayout());
mainLayout.add(lblHeading, BorderLayout.NORTH);
jList = new JList(projectList);
listItems = new DefaultListModel();
jList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
scrollpane = new JScrollPane(jList, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
mainLayout.add(scrollpane);
add(mainLayout);
Независимо от того, что я делаю, текст в JList выходит из рамы и скроллинга не появляется.
Любые предложения?
Вы хотите создать и опубликовать небольшой, но простой полную программу, которая иллюстрирует проблему, [MCVE] (http://stackoverflow.com/help/mcve). Для получения подробной информации об этом очень полезном инструменте проверьте ссылку. –
Да, пробовал с ним TT. Это не работает для меня. –
@HovercraftFullOfEels, Джентльмен, его 5-6 строк кода. Я не думаю, что это может пойти короче. Мне нужно добавить JList в JscrollPane, который находится внутри JPanel. Надеюсь, это четко указывает на мою проблему. Спасибо, что ответили на мой вопрос –