0

フレームの右下隅にボタンを再配置しようとしていますが、setLocationやsetBoundsなど、試したものはすべて何も実行されないようです。また、ボタンを画像に変更するにはどうすればよいですか?ボタンのままですが、画像が表示されます。

package TrainCounselor;

import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Start extends JPanel {

public Start() {

    // Game Properties
    setOpaque(false);
    setLayout(new FlowLayout());

}

public void paint(Graphics g) {
    Image a = Toolkit
            .getDefaultToolkit()
            .getImage(
                    "C:/Users/Mel/workspace/camptycoon/javagame/src/javagame/background1.png");
    g.drawImage(a, 0, 0, this);
    super.paint(g);
}

public static void main(String[] args) {
    JFrame myFrame = new JFrame("Put Image");
    JButton startButton = new JButton("Start");
    startButton.setLayout(null);
    startButton.setLocation(50, 50);
    Start c = new Start();
    c.add(startButton);
    myFrame.add(c);
    myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    myFrame.setTitle("Counselor Training");
    myFrame.setSize(755, 600);
    myFrame.setResizable(false);
    myFrame.setVisible(true);
}

}

4

1 に答える 1

1

フレームの右下隅にあるようにボタンを再配置しようとしています

適切なレイアウト マネージャーを使用します。

まず、右揃えの FlowLayout を持つ JPanel を使用します。次に、このパネルを JFrame で使用される BoderLayout の「SOUTH」に追加します。

詳細については、レイアウト マネージャーのビジュアル ガイドを参照してください。

Start クラスをフレームに追加するときは、それを南ではなく「中央」に追加することに注意してください。また、カスタム ペイントは、paint() メソッドではなく、paintComponent() メソッドをオーバーライドすることによって行われます。画像を描画した後ではなく、描画する前に super.paintComponent() を呼び出すことを忘れないでください。

また、ボタンを画像に変更するにはどうすればよいですか?ボタンのままですが、画像が表示されるように。

ボタンの使用方法に関する Swing チュートリアルのセクションを読んでください。

于 2013-02-09T23:27:03.343 に答える