-1

アプレットに背景画像を追加しようとしていますが、追加方法がわかりません。

これが私のコードです。

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

2 に答える 2

0

paint機能を使用できます

public void paint(Graphics g) {

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

インポートを忘れないでくださいimport javax.swing.ImageIcon;

于 2013-10-31T06:21:27.380 に答える
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();
        }
    }
}

次に、アプレットのコンテンツペインとして設定できます...

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

このようなものを使用する唯一の本当の理由は、位置、サイズ、アルファなどのような特別な方法で画像を処理したいからです...

これはすべて、イメージがアプリケーションの Jar の 1 つにパッケージ化されており、実行時にクラスパスのコンテキストから利用できることを前提としています...

于 2013-10-31T06:36:34.260 に答える