Я приложил свой код ниже, снимок экрана моей программы и рисунок того, на что я хочу, чтобы вкладка выглядела. Мне нужно, чтобы моя JPanel textPanel появилась под JButtons на вкладке LLP. Я попытался добавить textPanel в tabsPanel, но когда я сделаю это, мои вкладки исчезнут. Мне нужно, чтобы textPanel растягивалась по экрану и заполняла пробел ниже вкладки LLP. Но я также не хочу, чтобы textPanel отображалась на других вкладках. Первое показанное изображение - это то, как выглядела старая программа. Меня попросили начать с нуля и сделать лучшую программу. Я не могу получить входной выходной журнал на моем экране. Но, как вы видите, оно отображает то, что я выбрал в настройках порта. Добавление JPanel в JPanel
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.TextArea;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JRadioButton;
import javax.swing.JTabbedPane;
public class TestApplication implements ActionListener {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(1000, 1000);
frame.setTitle("RBA Test Application");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
JLabel logLabel = new JLabel("Input/Output Log");
JButton initialize = new JButton("Initialize");
JButton connect = new JButton("Connect");
JButton disconnect = new JButton("Disconnect");
JButton shutdown = new JButton("Shut Down");
JButton portsettings = new JButton("Port Settings");
JButton online = new JButton("Go Online");
JButton offline = new JButton("Go Offline");
JButton status = new JButton("Status");
JButton reboot = new JButton("Reboot");
JButton account = new JButton("Account");
JButton amount = new JButton("Amount");
JButton reset = new JButton("Reset");
JButton apprvordecl = new JButton("Apprv/Decl");
JButton test = new JButton("Test Button #1");
JButton testing = new JButton("Test Button #2");
JRadioButton button = new JRadioButton("Radio Button");
JRadioButton button2 = new JRadioButton("Radio Button");
JCheckBox checkbox = new JCheckBox("Check Box");
JCheckBox checkbox2 = new JCheckBox("Check Box");
JPanel testPanel = new JPanel();
testPanel.add(button);
testPanel.add(button2);
testPanel.add(checkbox2);
JPanel posPanel = new JPanel();
posPanel.add(test);
posPanel.add(testing);
posPanel.add(checkbox);
JPanel llpPanel = new JPanel();
llpPanel.add(online);
llpPanel.add(offline);
llpPanel.add(status);
llpPanel.add(reboot);
llpPanel.add(account);
llpPanel.add(amount);
llpPanel.add(reset);
llpPanel.add(apprvordecl);
JPanel textPanel = new JPanel(new BorderLayout());
textPanel.add(logLabel);
frame.add(logLabel);
JPanel buttonPanel = new JPanel();
buttonPanel.add(initialize);
buttonPanel.add(connect);
buttonPanel.add(disconnect);
buttonPanel.add(shutdown);
buttonPanel.add(portsettings);
frame.add(buttonPanel);
frame.add(buttonPanel, BorderLayout.NORTH);
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.addTab("LLP", null, llpPanel, "Low Level Protocol");
tabbedPane.addTab("POS",null, posPanel, "Point Of Sale");
tabbedPane.addTab("Test", null, testPanel, "Test");
JPanel tabsPanel = new JPanel(new BorderLayout());
tabsPanel.add(tabbedPane);
frame.add(tabsPanel, BorderLayout.CENTER);
frame.pack();
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
}
}
Не удалось удалить весь код, напрямую связанный с проблемой макета. Весь материал 'ActionListener' бесполезен и делает код трудным для чтения.Пожалуйста, укажите только код, необходимый для решения этой проблемы. – thatidiotguy
ok Я изменил его. Все мои панели не выстраиваются в линию, как раньше, поэтому я сожалею, если это кажется запутанным. –
Я думаю, что ваш llpPanel нуждается в макете, а также для того, чтобы выполнить то, что вы хотите. Затем добавьте кнопки в BorderLayout.NORTH и добавьте текстовую панель в BorderLayout.CENTER –