2013-02-09 24 views
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); 
} 

}

回答

1

我試圖重新定位按鈕,以便它在框架

使用相應的佈局管理器的右下角。

我將首先使用帶有右對齊的FlowLayout的JPanel。然後,將此面板添加到由JFrame使用的BoderLayout的「南」。

請參閱A Visual Guide to Layout Managers瞭解更多信息。

請注意,將Start類添加到要添加到「CENTER」而不是南部的框架中。此外,自定義繪畫是通過覆蓋paintComponent()方法而不是paint()方法完成的,不要忘記在繪製圖像之前調用super.paintComponent(),而不是在之後。

此外,我將如何將按鈕更改爲圖像?所以它仍然是一個按鈕,但是會顯示一個圖像。

閱讀Swing教程How to Use Buttons中的部分。