У меня есть основной JFrame
в моем проекте. И один основной JPanel
с Y-AXIS BoxLayout
, который используется для размещения в нем других панелей. Это путь я использую мой JFrame
, чтобы показать эту JPanel
по умолчанию (я не совсем уверен, если это правильный путь):Как динамически создавать JPanel с заданными параметрами?
Следующая добавить два JPanels в mainPanel
так:
public class MainScreenPanel extends javax.swing.JPanel {
public MainScreenPanel() {
StatusPanel sPanel = new StatusPanel();
LogPanel lPanel = new LogPanel();
add(sPanel);
add(lPanel);
}
}
lPanel
имеет различные элементы gui на нем. Один из них это кнопка, которая открывает другую панель (addConnectionPanel), и заменяет mainPanel
в jFrame
Вот как я это сделать:
private void addCnctButtonActionPerformed(java.awt.event.ActionEvent evt) {
JFrame topFrame = (JFrame) SwingUtilities.getWindowAncestor(this);
topFrame.setContentPane(new AddConnectionPanel());
topFrame.invalidate();
topFrame.validate();
}
AddConectionPanel
имеет некоторые этикетки и ввод текстовых полей. Он имеет две кнопки ok
и cancel
. Вот код cancel
кнопки:
private void cancelCnctBtnActionPerformed(java.awt.event.ActionEvent evt) {
JFrame topFrame = (JFrame) SwingUtilities.getWindowAncestor(this);
topFrame.setContentPane(new MainScreenPanel());
topFrame.invalidate();
topFrame.validate();
}
sPanel
пуст. Он должен быть пустым, пока поля ввода на AddConnectionPanel
не будут заполнены и кнопка «ok» не будет нажата. Когда эти действия выполняются, я хочу динамически создать JLabels
, которые принимают параметры с входов на sPanel
. Этикетки должны быть сгруппированы, поэтому, когда необходимо выполнить действия, выполняемые во второй раз, необходимо создать новую группу. Может кто-нибудь дать мне совет, как это сделать? И покажи мне мои ошибки? Имейте в виду, что я использую NetBeans.
Пожалуйста, отрегулируйте отступ фрагментов кода. Также, пожалуйста, опубликуйте, что вы реализовали в классе AddConnectionPanel. –
@SME_Dev Класс AddConnectionPanel является стандартным JPanel, с TextLabels, TextInputs и двумя кнопками. Не имеет ничего особенного. – iColdBeZero