我怎样才能将这样的图像放到slavePanelJPanel的顶部和顶部,调整JButtons看起来像图像但是按钮正确缠绕?(现在它们形成一排,四列)

//
// Shot Gun mover up/down/left/right, middle on is for zoom
//
public void GunMover(JPanel configPanel) throws IOException {
// Master Panel - holds everything
JPanel masterPanel = new Panel();
masterPanel.setLayout(new SpringLayout());
// Slave Panel - with image background
JPanel slavePanel = new Panel();
slavePanel.setLayout(new SpringLayout());
// Row 1
final JButton ptzLeft = new JButton("<");
masterPanel.add(ptzLeft, BorderLayout.WEST);
// Row 2
final JButton ptzRight = new JButton(">");
masterPanel.add(ptzRight, BorderLayout.CENTER);
// Row 3
final JButton ptzUp = …Run Code Online (Sandbox Code Playgroud) 我有一个简单的益智游戏.有一个由16块瓷砖组成的图像(随机放置).图像存储在一个数组中,当游戏启动时,它们被添加到主JPanel中.
替代文字http://img248.imageshack.us/img248/7403/27632947.gif
游戏以这种方式工作:每个图像都有"地点"和"数字"."放置"是网格上的当前位置(正确与否),"数字"是图像的所需位置.当用户点击图像时,会检查其"地点"和"数字"属性.如果他们匹配什么都没发生 如果没有游戏检查当前是否有任何图像在内存中.如果没有,则存储该图像的"位置"和"数字".如果内存中有一些图像,则使用存储图像的"数字"检查当前单击的图像的"plac".当他们匹配时 - 他们的位置被交换.这部分工作正常.但是现在,我正在使用更新的图像在我的JPanel上调用addComponent方法,而且没有任何反应.不该"
包奖金;
import javax.swing.*;
import java.util.Random;
import java.awt.event.*;
import java.awt.*;
class Puzzle extends JPanel implements ActionListener {
private int selected_nr=-1;
private int selected_pl=-1;
private boolean memory=false;
private static Img[] images;
public Puzzle(){
JFrame f = new JFrame("Smile");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(this);
f.setSize(252,252);
f.setVisible(true);
setLayout(new GridLayout(4, 4));
images = new Img[16];
int[] buttons = new int[16];
for(int i=0; i<16; i++){
buttons[i] = i;
}
int rand;
int temp;
Random random;
random = new Random(System.currentTimeMillis());
for (int i = …Run Code Online (Sandbox Code Playgroud) 我想用 Java Swing 编写一个程序,它将显示世界地图,用户可以在其中单击每个国家/地区(即每个国家/地区都是一个按钮)。我认为最方便的方法是将世界地图图像拆分为按钮,但我不知道如何做到这一点。
我看了这个问题:Split image into clickable region,那里给出的答案显示了如何将图像拆分为矩形,但我必须将其拆分为任意形状。