我的JPanel包含:
JButton和 JLabel里面有图片
我想将按钮放在JLabel顶部的NORTH CENTER位置。目前它的设置彼此相邻,我不知道如何覆盖JLabel。
我在这里尝试了很多解决方案,但它似乎并没有按照我想要的方式工作。谢谢!
JLabel picLabel = new JLabel(); // background of the label
picLabel.setIcon(new ImageIcon(CoursesGUI.class.getResource("/images/graph_paper.jpg")));
Button en_course_btn = new JButton("English Course");
coursePanel.add(en_course_btn);
coursePanel.add(picLabel);
更新:按钮位于JLabel的顶部,但不在内部。
答案 0 :(得分:3)
您应该为标签设置布局并在其中添加按钮:
JPanel setupPanel = new JPanel();
JPanel titlePanel = new JPanel();
JPanel contentPanel = new JPanel();
JPanel coursePanel = new JPanel();
JLabel picLabel = new JLabel(); // background of the label
picLabel.setLayout(new FlowLayout(FlowLayout.CENTER));
picLabel.setIcon(new ImageIcon(CoursesGUI.class.getResource("/images/graph_paper.jpg")));
// picLabel.setLayout(new BorderLayout()); // sets layout inside the label
JButton en_course_btn = new JButton("English Course");
contentPanel.setBackground(Color.GREEN);
titlePanel.setBackground(Color.YELLOW);
// picLabel.setPreferredSize(new Dimension(500, 470)); // dimensions of inner containers
contentPanel.setPreferredSize(new Dimension(1280, 670));
titlePanel.setPreferredSize(new Dimension(1280, 50));
picLabel.add(en_course_btn);
//coursePanel.add(en_course_btn);
coursePanel.add(picLabel);
contentPanel.add(coursePanel); // add coursePanel containing buttons and background
setupPanel.add(titlePanel, BorderLayout.NORTH);
setupPanel.add(contentPanel);
getContentPane().add(setupPanel);