将背景图像添加到小程序框架中



我正在尝试向我的小程序添加背景图像,但不知道如何添加。

这是我的代码。

public class SAMmain extends JApplet{    
    public JMenuBar mbar=new JMenuBar();    
    public JMenu newStudent,viewtudent,markAttendence;
    public void init() {
        setSize(1366, 768);
        setJMenuBar(mbar);
        newStudent= new JMenu("New Student  ");
        mbar.add(newStudent);
        viewtudent= new JMenu("View student");      
        mbar.add(viewtudent);
        markAttendence= new JMenu("Mark Attendence");
        mbar.add(markAttendence);
    }
    public void start() {
    }   
     public void stop() {
    }
}
您可以使用

paint函数

public void paint(Graphics g) {
        ImageIcon i = new ImageIcon("path");
        g.drawImage(i.getImage(), x, y, this);
    }

并且不要忘记导入import javax.swing.ImageIcon;

根据

您想要的内容,可以通过多种方式实现此目的...

你可以...

使内容窗格成为JLabel ,为其设置图标...

public void init() {
    JLabel label = new JLabel(new ImageIcon(getClass().getResource("/path/to/resource")));
    setContentPane(label);
    setLayout(...);
    //...
}

你可以...

例如,使用 Graphics API...

public class BackgroundPane extends JPanel {
    private BufferedImage img;
    public BackgroundPane() {
        try {
            img = ImageIO.read(getClass().getResource("/path/to/resource"));
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
    @Override
    public Dimension getPreferredSize() {
        return img == null ? new Dimension(200, 200) : new Dimension(img.getWidth(), img.getHeight());
    }
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        if (img != null) {
            Graphics2D g2d = (Graphics2D) g.create();
            g2d.drawImage(img, 0, 0, this);
            g2d.dispose();
        }
    }
}

然后,您可以将其设置为小程序的内容窗格...

public void init() {
    BackgroundPane background = new BackgroundPane();
    setContentPane(background);
    setLayout(...);
    //...
}

使用这样的东西的唯一真正原因是因为您想以某种特殊的方式处理图像,例如它的位置、大小、alpha 等......

这一切都假定映像已打包到应用程序的一个 Jar 中,并且可以在运行时从类路径的上下文中获取......

最新更新