java - 将 JButton 放在 JPanel 内 JLabel 的顶部

标签 java swing user-interface jpanel jlabel

我的 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 的顶部,但不在内部。

最佳答案

您应该为标签设置布局并在其中添加按钮:

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);

关于java - 将 JButton 放在 JPanel 内 JLabel 的顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26941638/

相关文章:

java - 如何从java swing中的表模型中提取命名列

java - 如何使括号的默认缩进与 Java 中 Eclipse 中大括号的默认缩进相同?

java - 如何在 Swing JLabel 中每隔设定数量的字符添加一个新行

java - netbeans 中缺少 defaultCloseOperation 选项

c++ - 有没有一种优雅的方法来激活焦点小部件所在的选项卡?

Java - 带条件的对象循环?

java - 与实现Iterable相关的对象类型有哪些

java - 手动 Swing 数据绑定(bind)

xcode - 如何提高 iOS 7 中工具栏和导航栏上按钮的点击能力

java - 限制选中的复选框数量