У меня есть приложение Java, которое добавляет JTextFields @ runtime в JPanel. В основном пользователь нажимает кнопку и добавляет новый JTextField, снова добавляется клик ...Java Swing Scrollpane в NetBeans
Каждый новый JTextField находится непосредственно под предыдущим. Очевидно, что я скоро выйду из космоса, поэтому я пытаюсь использовать JScrollPane, и там, где ад начинается, потому что он просто не работает независимо от того, что я пытаюсь.
- Щелкните правой кнопкой мыши по JPanel и Enclose in Scroll Pane. Не работает.
- После прочтения некоторых примеров я понял, что должен иметь JPanel в качестве аргумента для конструктора JScrollPane. Что я сделал, щелкнув правой кнопкой мыши на ScrollPane и CustomizeCode. Поскольку, по-видимому, автоматически сгенерированный код защищен в NetBeans, и я не могу просто изменить все эти объявления и т. Д. Вручную. Все еще не работает.
- Я попытался установить PreferedSize в null для JPanel и/или JScrollPane, не помог.
- JScrollPane - это дочерний элемент let, который можно назвать TabJPanel (который, в свою очередь, является вкладкой TabbedPane). Я пытался испортить свои отношения, в основном старался всячески поддерживать родительские отношения между JFrame, JPanel (холдинг текстовых полей), TabJPanel и JScrollPane, но ничего не работало.
- Я также сделал VerticalScrollBar «всегда видно» только в футляре. Таким образом, я вижу полосу прокрутки, просто заполнение этого JPanel с помощью JTextFields не влияет на него.
- Когда слишком много JTextFields, они идут «ниже» нижней границы JPanel, и я больше их не вижу.
Код для добавления новых JTextFields аналогичен этому, в случае, когда это релевантно.
JTextField newField = new JTextField(columns);
Rectangle coordinates = previousTextField.getBounds();
newField.setBounds(coordinates.x , coordinates.y + 50, coordinates.width, coordinates.height);
JPanel.add(newField);
JPanel.revalidate();
JPanel.repaint();
Извините за длинный пост, я просто пытаюсь представить как можно больше информации, насколько это возможно, потому что, будучи новичком, Что я не совсем уместным и Что не знаю. Заранее спасибо :)
Считаете ли вы использование 'JTable' с одним столбцом? Это будет делать все это автоматически и может облегчить работу с вашими динамическими ценностями. –
«JList» будет таким же хорошим, как один столбец «JTable». – akf
@akf: Я почтительно не согласен. 'JList' не редактируется (см. Http://bugs.sun.com/bugdatabase/view_bug.do;jsessionid=2668b0245e0c6ffffffff8c9a141bfd70b62?bug_id=4143856) –