-1
我的主要問題是製作一個按鈕矩陣,點擊後會向我發送2個整數值(行和列)。矩陣是十五,第一行有7列,第二行有5,第三行有9,ectr ...我發現一個很好的解決方案,使矩陣,但是當我使用remove()
,比佈局瞬間改變按鈕的位置......這裏是代碼的一部分。JButton,它們的矩陣不均勻(如第1行7列,第2行9,ectr)
private static JButton[][] buttons;
public static JFrame f = new JFrame();
public TEMPus(int row, int col) {
super(new GridLayout(row, col));
buttons = new JButton[row][col];
for (int i = 0; i < buttons.length; i++) {
for (int j = 0; j < buttons[i].length; j++) {
final int curRow = i;
final int curCol = j;
buttons[i][j] = new JButton(j + ", " + i);
buttons[i][j].addKeyListener(enter);
buttons[i][j].addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_UP:
if (curRow > 0)
buttons[curRow - 1][curCol].requestFocus();
break;
case KeyEvent.VK_DOWN:
if (curRow < buttons.length - 1)
buttons[curRow + 1][curCol].requestFocus();
break;
case KeyEvent.VK_LEFT:
if (curCol > 0)
buttons[curRow][curCol - 1].requestFocus();
break;
case KeyEvent.VK_RIGHT:
if (curCol < buttons[curRow].length - 1)
buttons[curRow][curCol + 1].requestFocus();
break;
default:
break;
} // end of switch
}
}); //end of key listener
add(buttons[i][j]);
}
}
}
和這裏就是我試圖刪除某些按鈕主...
public static void main(String[] args) {
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
TEMPus temp1 =new TEMPus(3, 5);
temp1.remove(buttons[1][4]);
f.add(temp1);
f.pack();
f.setVisible(true);
}
很抱歉的長期職位:/並感謝您的時間:)
謝謝,這正是我在這個論壇上尋找的過去2-3個小時O_o,我覺得有點笨。再次感謝您抽出時間^^ PS:我編輯了關於該名稱的部分,是的,它不會更改ot,只會與位置錯誤地拼錯,所以我誤解了它。 –