Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否将按钮重新定位并更改为图像?_Java_Swing_User Interface_Jpanel_Jbutton - Fatal编程技术网

Java 是否将按钮重新定位并更改为图像?

Java 是否将按钮重新定位并更改为图像?,java,swing,user-interface,jpanel,jbutton,Java,Swing,User Interface,Jpanel,Jbutton,我正在尝试重新定位按钮,使其位于帧的右下角,但我尝试的所有操作,如设置位置和后退,似乎都没有任何作用。另外,如何将按钮更改为图像?因此,它仍然是一个按钮,但会显示一个图像 package TrainCounselor; import java.awt.FlowLayout; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import javax.swing.JButton; import j

我正在尝试重新定位按钮,使其位于帧的右下角,但我尝试的所有操作,如设置位置和后退,似乎都没有任何作用。另外,如何将按钮更改为图像?因此,它仍然是一个按钮,但会显示一个图像

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);
}
}

我正在尝试重新定位按钮,使其位于框架的右下角

使用适当的布局管理器

我将首先使用一个具有右对齐的FlowLayout的JPanel。然后将此面板添加到JFrame使用的BoderLayout的“南部”

有关更多信息,请参阅

注意,将开始类添加到框架时,是将其添加到“中心”,而不是南部。另外,自定义绘制是通过重写paintComponent()方法而不是paint()方法完成的,并且不要忘记在绘制图像之前调用super.paintComponent(),而不是在绘制图像之后

另外,如何将按钮更改为图像?因此,它仍然是一个按钮,但会显示一个图像

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);
}
阅读上的Swing教程中的部分