【发布时间】:2014-05-20 22:34:54
【问题描述】:
我会将这些按钮放置在框架的中心并相互上方,就像这样。
BUTTON
BUTTON
BUTTON
我在这个论坛上搜索了多个主题,但到目前为止我尝试的所有方法都不起作用。我希望有人有解决方案。
这是我目前的代码:
package ípsen1;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
public class Paneel extends JPanel implements ActionListener {
Image achtergrond;
private JButton spelHervatten;
private JButton spelOpslaan;
private JButton spelAfsluiten;
public Paneel(){
//buttons
spelHervatten = new JButton("Spel hervatten");
spelHervatten.setPreferredSize(new Dimension(380, 65));
spelOpslaan = new JButton("Spel opslaan");
spelOpslaan.setPreferredSize(new Dimension(380, 65));
spelAfsluiten = new JButton("Spel afsluiten");
spelAfsluiten.setPreferredSize(new Dimension(380, 65));
//object Paneel luistert naar button events
spelAfsluiten.addActionListener(this);
add (spelHervatten);
add (spelOpslaan);
add (spelAfsluiten);
}
public void paintComponent(Graphics g) {
//achtergrond afbeelding zetten
achtergrond = Toolkit.getDefaultToolkit().getImage("hout.jpg");
//screensize
g.drawImage(achtergrond, 0,0, 1024,768,this);
}
//actie na klik op button
public void actionPerformed(ActionEvent e) {
if(e.getSource() == spelAfsluiten){
System.out.println("Spel afsluiten");
System.exit(0);
}
}
}
【问题讨论】:
-
spelOpslaan.setPreferredSize(new Dimension(380, 65));见Should I avoid the use of set(Preferred|Maximum|Minimum)Size methods in Java Swing?(是的。) -
public void paintComponent(Graphics g) { //achtergrond afbeelding zetten achtergrond = Toolkit.getDefaultToolkit().getImage("hout.jpg");..1) 第一行应该是super.paintComponent(g);2)achtergrond afbeelding zetten不是英文的评论是 SO 上的噪音。 3) 不要在paintXxx(..)方法中加载图像!而是在启动时加载它并将其存储为类属性。 -
若想尽快获得更好的帮助,请发布MCVE(最小完整且可验证的示例)。