将背景图像添加到applet框架中

时间:2013-10-31 06:17:33

标签: java image swing background-image japplet

我正在尝试向我的applet添加背景图片,但不知道如何添加。

这是我的代码。

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() {
    }
}

2 个答案:

答案 0 :(得分:0)

您可以使用paint功能

public void paint(Graphics g) {

        ImageIcon i = new ImageIcon("path");
        g.drawImage(i.getImage(), x, y, this);
    }

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

答案 1 :(得分:0)

根据您的需要,可以通过多种方式实现这一目标......

你可以......

将内容窗格设为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();
        }
    }
}

然后您可以将其设置为applet的内容窗格...

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

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

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