我試圖讓一個面板出現在另一個面板下(textPanel 出現在 mainPanel 下)。
但相反,textPanel 出現在 mainPanel 之上:
FlatLightLaf.setup();
FlatLightLaf.supportsNativeWindowDecorations();
UIManager.setLookAndFeel(new FlatLightLaf());
JFrame frame = new JFrame();
frame.setTitle("Title");
frame.setSize(640, 480);
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("File");
JMenuItem menuFileSave = new JMenuItem("Save");
menuFileSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK));
menu.add(menuFileSave);
menuBar.add(menu);
FlowLayout mainLayout = new FlowLayout(FlowLayout.LEFT);
frame.setJMenuBar(menuBar);
JPanel mainPanel = new JPanel(new BorderLayout());
String datesString[] = {"Tuesday May-03-2022", "Monday May-02-2022"};
@SuppressWarnings("rawtypes")
JComboBox dateDropDown = new JComboBox<>(datesString);
dateDropDown.setFont(new Font("Calibri", Font.PLAIN, 17));
dateDropDown.setVisible(true);
mainPanel.add(dateDropDown);
mainPanel.setVisible(true);
frame.add(mainPanel);
JPanel textPanel = new JPanel(new BorderLayout());
JTextArea textArea = new JTextArea();
textPanel.add(textArea);
textPanel.setVisible(true);
frame.add(textPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
如何確保 textPanel在它自己的行/行上低于mainPanel,而不是在它之上?
uj5u.com熱心網友回復:
默認情況下,當向 a 添加一個組件時,沒有進一步的引數,JFrame所討論的組件將占用整個客戶區,因為默認情況下JFrame使用 a BorderLayout。因此,您的解決方案是使用進一步的引數,告訴它將其添加到布局的底部:
frame.add(textPanel, BorderLayout.PAGE_END);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/473173.html
