Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JFrame中的图片上放置JButton_Java_Jframe_Window_Jbutton_Joptionpane - Fatal编程技术网

Java 如何在JFrame中的图片上放置JButton

Java 如何在JFrame中的图片上放置JButton,java,jframe,window,jbutton,joptionpane,Java,Jframe,Window,Jbutton,Joptionpane,我正在创建一个小程序。该计划应包括以下内容: 首先,它打开一个包含图片和文本的窗口。它还有一个按钮,我们走吧!这将打开一个包含一些对话框和4个不同按钮的JOptionPane。 这是一个测验,所以有一个问题和4个不同的答案 当您单击错误答案时,它会显示类似错误答案的内容,请重试 如果你点击正确答案,它会说:正确答案,请随意继续或类似的内容,然后下一个问题就会出现 到目前为止还不错。我对Java相当陌生,这是我的第一个大程序,我已经有点卡住了。 我目前面临的问题是:如何在JFrame中放置带有图片

我正在创建一个小程序。该计划应包括以下内容:

首先,它打开一个包含图片和文本的窗口。它还有一个按钮,我们走吧!这将打开一个包含一些对话框和4个不同按钮的JOptionPane。 这是一个测验,所以有一个问题和4个不同的答案 当您单击错误答案时,它会显示类似错误答案的内容,请重试 如果你点击正确答案,它会说:正确答案,请随意继续或类似的内容,然后下一个问题就会出现

到目前为止还不错。我对Java相当陌生,这是我的第一个大程序,我已经有点卡住了。 我目前面临的问题是:如何在JFrame中放置带有图片和文本的JButton?我创建了一个位,它要么不显示,要么在图片下方。 以下是我目前的代码:

import java.awt.*;
import javax.swing.*;

public class HBA extends JFrame {
public HBA() {
    setSize(1100, 720);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLayout (new FlowLayout(FlowLayout.CENTER));

    Icon icon = new ImageIcon("HappyBirthday.jpg");
    JLabel label1 = new JLabel("Happy Birthday Anna!", JLabel.CENTER);
    JLabel label2 = new JLabel("Und viel Erfolg mit diesem Geschenk! ;)", JLabel.CENTER);
    JLabel label3 = new JLabel(icon);
    JButton OK = new JButton("Let's Go!");
    Font schrift = new Font("ComicSans", Font.BOLD, 24);
    label1.setFont(schrift);
    label2.setFont(schrift);
    label1.setForeground(Color.black);
    label2.setForeground(Color.black);

    getContentPane().add(label1);
    getContentPane().add(label2);
    getContentPane().add(label3);
    getContentPane().setBackground(Color.white);
    getContentPane().add(OK);

}
public static void main(String[] args) {
    new HBA().setVisible(true);

}
}


除了JButton问题之外:有人能给我一个建议,如何在此基础上构建并创建JOptionPane窗口吗?

向框架添加背景至少可以通过以下两种方式之一来完成,您可以使用JLabel,按照正常方式将图像应用于标签,将布局管理器添加到标签,并将其余内容添加到其中,然后将标签添加到框架中。问题是,如果内容超过了图像的大小,它们将无法正确布局。另一种方法是从类似JPanel的东西创建自定义组件,并使用其paintComponent方法绘制图像。然后,您可以根据任何其他组件将其他组件添加到此面板。。。可以我目前正在使用Flow.Layout。所以我需要编辑什么来集成按钮?这基本上是我的问题。。。如何集成按钮以及如何将其放置在JFrame的底部和中心?回滚:问题已解决。我找到按钮了。JFrame的大小不够大。我现在将其设置为1100、850,按钮现在也可能显示出来。不过:有人能给我一个关于如何集成JOptionPanes的提示吗?我读到我必须为按钮创建一个监听器,让它做一些事情,并演示谁在JPanel上绘制图像,然后你可以使用这个JPanel作为你其余编程的基础,根据正常情况向它添加内容,然后将面板添加到你的框架中