Jbutton將之間移動我想使用FlowLayout
或任何其他佈局和上下移動使用Up
和Down
key..Having問題JButtons
之間移動JPanel
中添加JButtons
,因爲我不知道的JButton
的行和列。使用鍵盤
public class abc{
List<ControlCenterButton> buttons=getButtons();
JPanel buttonPanel= new JPanel();
buttonPanel.setLayout(new FlowLayout)
for (int i = 0; i < buttons.size(); i++) {
ControlCenterButton button = buttons.get(i);
if (button.getLayarID().equals(id)) {
flag = true;
button.addActionListener(this);
button.setPosition(i);
button.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent mouseEvent) {
buttonPanel.requestFocusInWindow();
}
});
buttonPanel.add(button);
}
buttonPanel.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent keyEvent) {
final ControlCenterButton selectedControlCenterButton = (ControlCenterButton) Session.getSession().getAttribute("controlcenter.selectedbutton");
int position = selectedControlCenterButton.getPosition();
int keycode = keyEvent.getKeyCode();
switch (keycode) {
case KeyEvent.VK_RIGHT: {
if (position + 1 >= buttons.size()) {
ControlCenterButton.selectButton(buttons.get(0));
} else
ControlCenterButton.selectButton(buttons.get(position +));
break;
}
case KeyEvent.VK_UP: {
break;
}
case KeyEvent.VK_DOWN: {
}
case KeyEvent.VK_ENTER: {
selectedControlCenterButton.requestFocusInWindow();
new ControlCenterButton().openApplication(selectedControlCenterButton);
break;
}
}
}
public class ControlCenterButton extends JButton implements ActionListener {
private int position;
public int getPosition() {
return position;
}
public void setPosition(int position) {
this.position = position;
}
}
您使用的是什麼佈局? –
他已經提到過,flowlayout .... –
你到目前爲止嘗試過什麼?您應該發佈一些代碼並解釋您當前/期望的結果 – Dahaka