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

在java中的JFrame上设置背景图像

阎京
2023-03-14

我刚开始尝试创建java接口,我想创建一个作为大学项目的一部分。

就像我说的,我是一个新手,所以我知道它可能非常简单,或者我没有把它搞砸,但如果有人能帮助它,它将会非常接近。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.IOException;

import javax.imageio.*;

public class CoopWelcome extends JFrame {

    private ImageIcon image1;
    private JButton b1;
    private JTextField userName;
    private static String password = "";
    private JPanel backGround;

    CoopWelcome() {
        setLayout(new FlowLayout());
        //creating username textbox
        userName = new JTextField("");
        userName.setText("Username");
        userName.setForeground(Color.GRAY);
        userName.setColumns(10);
        getContentPane().add(userName);
        //creating password textbox
        JPasswordField passWord = new JPasswordField(10);
        passWord.setEchoChar('*');
        passWord.addActionListener(new AL());
        getContentPane().add(passWord);
        //adding the button and the label to the panel
        b1 = new JButton("something");
        getContentPane().add(b1);
        //getting the image and displaying to the label
    }

    public static void main(String[] Args) {
        //Creating the interface
        CoopWelcome gui = new CoopWelcome();
        gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        gui.setVisible(true);
        gui.pack();
        gui.setTitle("The Co-operative");
        try {
            gui.setContentPane(new JLabel(new ImageIcon(ImageIO.read(new File("img.jpg")))));

        } catch (IOException e) {
            System.out.println("image doesn't exist");
        }
    }

    static class AL implements ActionListener {

        public void actionPerformed(ActionEvent e) {
            JPasswordField input = (JPasswordField) e.getSource();
            char[] passy = input.getPassword();
            String p = new String(passy);
            if (p.equals(password)) {
                JOptionPane.showMessageDialog(null, "Correct");

            } else {
                JOptionPane.showMessageDialog(null, "Incorrect");
            }
        }
    }
}

共有1个答案

欧博简
2023-03-14

GUI.SetContentPane(新建JLabel(新建ImageIcon(ImageIo.Read(新建文件(“img.jpg”))));

合理的方法,但问题是,默认情况下JLabel不使用布局管理器,因此您无法轻松地向其添加组件。尝试:

JLabel background = new JLabel(...);
background.setLayout( new BorderLayout() );
gui.setContentPane( background );
 类似资料:
  • 问题内容: 有什么方法可以将图像设置为背景JFrame? 问题答案: 没有内置方法,但是有几种方法可以实现。目前我能想到的最直接的方法是: 创建的子类。 重写绘制想要显示的图像的方法。 设置内容窗格的是这个子类。 一些示例代码: 请注意,如果你要使用此代码,则不会处理调整图像大小以适合的大小。

  • 问题内容: 我学习Java已有几周了,在将背景图像应用于JFrame时,我真的很困惑。我遇到的每个教程都不像我那样创建Frames(我扩展了JFrame),或者如果这样做,说明还不够清楚,我无法理解。 下面的代码来自我自己的项目,因此可以帮助我练习到目前为止所学的内容。请您能否以下面的代码为基础,并向我说明要添加的内容和位置,所以我可能以图像作为框架的背景? 我真正要感谢的一件事是,如果您能解释事

  • 问题内容: 如何设置JFrame的背景颜色? 问题答案: 检索框架的内容窗格,并使用从继承的方法更改颜色。 例:

  • 问题内容: 我正在创建一个GUI,尽管很简单,但我想让背景图像(2048 X 2048)填满整个窗口,并在左上角放置一个正方形,可以偶尔加载64 X 64图像。在此先感谢提供帮助的任何人:)编辑:我已经知道如何使JFrame设置大小,其图像加载需要帮助。 问题答案: 这是一个在JFrame中添加背景图像的简单示例: 点击这里了解更多信息

  • 问题内容: 我正在使用BlueJ作为IDE使用Java开发一个简单的平台游戏。现在,我在游戏中使用多边形和简单形状绘制了玩家/敌人的精灵,平台和其他物品。最终,我希望将它们替换为实际图像。 现在,我想知道将图像(URL或本地来源)设置为游戏窗口/画布的“背景”的最简单解决方案是什么? 如果编程时间不是太长或太复杂,我将不胜感激,因为我的编程技能不是很好,我想使我的程序尽可能简单。请为示例代码提供注