当前位置: 首页 > 知识库问答 >
问题:

JPanel内部的Jbuttons,背景图像在右|底角

燕光熙
2023-03-14

有人能解释一下我如何在jLabel中放置几个jButtons,这些jButtons有像这个图片一样的背景图片吗?主jFrame没有装饰,设置为全屏。

我看到了很多像这样的不同例子,但这些例子在jPanel中只显示单个按钮。

共有2个答案

卢树
2023-03-14

这些例子确实足够好了,我认为你应该学习更多关于swing的知识。现在,你可以简单地做:

JFrame frame = new JFrame("Hi there");
JButton b1 = new JButton("1");
JButton b2 = new JButton("2");
frame.add(b1);
frame.add(b2);
b1.setBounds(60, 60, 40, 40);
b2.setBounds(10, 10, 40, 40);
frame.setVisible(true);         //in case, add frame.setLayout(null);

当然,您可以将按钮添加到JPanel而不是JFrame

邵星光
2023-03-14

就我个人而言,我会避免为此使用< code>JLabel,它不会根据内容计算所需的大小,而是根据它的< code>icon和< code>text属性。

这可能是好事,也可能是坏事,但如果你没有意识到,它会让你措手不及。

相反,我会使用自定义的JPanel,这将允许您定义诸如调整大小和填充规则之类的内容,例如

现在,一旦你完成了,你需要创建一个按钮面板。我更喜欢创建一个专用类,因为它可以更容易地隔离功能和管理,但这就是我。。。

public class ButtonPane extends JPanel {

    public ButtonPane() {
        setLayout(new GridBagLayout());
        setBorder(new EmptyBorder(8, 8, 8, 8));
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.gridwidth = GridBagConstraints.REMAINDER;
        gbc.insets = new Insets(2, 2, 2, 2);

        add(new JButton("Button 1"), gbc);
        add(new JButton("Button 2"), gbc);
        add(new JButton("Button 3"), gbc);
    }

}

接下来,您需要将此面板添加到背景中

JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(backgroundPane);
frame.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.weightx = 1;
gbc.weighty = 1;
gbc.anchor = GridBagConstraints.SOUTHEAST;
gbc.insets = new Insets(30, 30, 30, 30);

ButtonPane buttonPane = new ButtonPane();
frame.add(buttonPane, gbc);

frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);

它可以产生类似于...

了解更多详细信息,请参阅在容器中布局组件以及如何使用GridBagLayout

 类似资料:
  • 问题内容: 如何在JPANEL上放置图像背景? 问题答案: 这是一个解释。

  • 问题内容: 我是Java新手,目前正在创建带有图形的游戏。我有从扩展的此类。在本课程中,我有很多需要图像作为背景的。据我所知,为了能够在JPanel中绘制图像,我需要从JPanel扩展一个单独的类,并且该类的方法可以完成工作。但是我不想为每个类创建单独的类,我的类太多了。而且我只关心背景。我怎样才能做到这一点?带有匿名内部类吗?怎么样? 为了更好地理解,我提供了一些代码: 问题答案: 为什么不制作

  • 问题内容: 这是一个非常简单的程序,我已尽力而为,但JPanel并未提供背景图片。我只希望面板上有一个简单的背景图像。 这是我的代码: 提前致谢 问题答案: 更换 与

  • 问题内容: 这是我的代码,它确实找到了图像,所以这不是我关心的问题,我关心的是如何使该图像成为面板的背景。我正在尝试使用Graphics,但是我不起作用,有什么想法吗?请?? 问题答案: 您的代码中有一个错误。在取消引用之前,将其设置为该行。这肯定会抛出一个。与其声明自己的Graphics对象,不如使用传递给要用于绘画的方法的那个。要在Swing中执行此操作,您应该实现绘制图像的方法,如下所示:

  • 问题内容: 我正在尝试使用在photoshop中制作的图像作为GUI的背景。我怎么做?我也做了一些我想在执行操作后显示在按钮背景中的图像… 问题答案: 对于JButton,请使用以下命令: 小组更加有趣。不过,这是一个好方法:

  • 上面有一个包含滑块的内容框。内容框的纵横比为1/.52。我的目标是在每张幻灯片上有一个不同的背景图像,内容覆盖在图像上。背景图像还必须通过web访问,所以设置背景图像css属性似乎不起作用。#LargeCarouselContent中的每个div都是一个幻灯片。当前的解决方案不起作用,因为canvas1.jpeg覆盖所有幻灯片。我被难住了,有什么主意吗?