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 类添加到框架时,您将其添加到“CENTER”,而不是南边。此外,自定义绘画是通过覆盖 paintComponent() 方法而不是 paint() 方法完成的,并且不要忘记在绘制图像之前调用 super.paintComponent(),而不是之后。

另外,如何将按钮更改为图像?所以它仍然是一个按钮,但显示了一个图像。

阅读 Swing 教程中有关如何使用按钮的部分。

于 2013-02-09T23:27:03.343 回答