我有BorderLayout
,主要内容位于中心。但是,我在底部有一些内容,它与主要内容重叠,即使那里没有内容。有没有办法让这个中心重叠呢?
正文在卷曲开始的同一点上切断。
private void prepareGUI() throws IOException {
mainFrame = new JFrame("Holy Bible");
mainFrame.setSize(700, 500);
mainFrame.setLayout(new BorderLayout());
mainFrame.setLocationRelativeTo(null);
mainFrame.setIconImage(new ImageIcon(getClass().getResource("/assets/bible/textures/icon.png")).getImage());
mainFrame.getContentPane().setBackground(Color.WHITE);
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent) {
System.exit(0);
}
});
mainFrame.addKeyListener(this);
centerPanel = new JPanel();
centerPanel.setBackground(Color.WHITE);
centerPanel.setLayout(new FlowLayout());
leftLabel = new JLabel("", JLabel.CENTER);
leftLabel.setFont(new Font(Font.SANS_SERIF, Font.PLAIN, 12));
centerPanel.add(leftLabel);
rightLabel = new JLabel("", JLabel.CENTER);
rightLabel.setFont(new Font(Font.SANS_SERIF, Font.PLAIN, 12));
centerPanel.add(rightLabel);
leftCurl = new JLabel();
leftCurl.setHorizontalAlignment(JLabel.LEFT);
leftCurl.setVerticalAlignment(JLabel.BOTTOM);
leftCurl.setIcon(new ImageIcon(getClass().getResource("/assets/bible/textures/curlleft15.png")));
mainFrame.add(leftCurl, BorderLayout.SOUTH);
rightCurl = new JLabel();
rightCurl.setHorizontalAlignment(JLabel.RIGHT);
rightCurl.setVerticalAlignment(JLabel.BOTTOM);
rightCurl.setIcon(new ImageIcon(getClass().getResource("/assets/bible/textures/curlright15.png")));
mainFrame.add(rightCurl, BorderLayout.SOUTH);
mainFrame.add(centerPanel, BorderLayout.CENTER);
mainFrame.setExtendedState(JFrame.MAXIMIZED_BOTH); // Maximizes frame
mainFrame.setUndecorated(fullScreen);
mainFrame.setVisible(true);
}
这是准备GUI的代码。文本以单独的方法添加。
答案 0 :(得分:2)
您可能需要嵌套JPanel和布局来实现您的目标。例如,两个使用BorderLayout的JPanel可以使用BorderLayout帮助使用主JPanel,将文本添加到CENTER位置。然后添加另一个使用BorderLayout的JPanel到主JPanel的EAST或LINE_END位置。将页面卷曲放在第二个JPanel的BorderLayout.PAGE_END或SOUTH位置。