У меня есть быстрый (или нет) вопрос о кодировании на Java.Обмен 2 конкретных JButtons
Есть ли способ обменять тексты на 2 JButtons или на кнопки, когда я нажимаю только один из них? Например, каждая кнопка имеет определенную другую кнопку, которую нужно заменить одним нажатием. Хотя в моем коде это не целые числа, а строки «X» и «Y».
Вот мой код:
package game;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Game extends JFrame implements ActionListener{
public static void main(String[] args) {
int row = 5;
int col = 5;
Game gt = new Game(row, col);
gt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gt.pack();
gt.setVisible(true);
}
String X = "X";
String Y = "Y";
int i = 0;
int j = 0;
public Game(int row, int col) {
Container pane = getContentPane();
pane.setLayout(new GridLayout(row, col));
for(int i = 0; i < 25; i++)
{
if(i == 1 || i == 2 || i == 14 || i == 15 || i == 23 || i == 9)
{
JButton button = new JButton(X);
pane.add(button);
button.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource()==button)
{
if(button.getText() == Y) button.setText(X);
else button.setText(Y);
}
}
}
);
} else if(i == 3 || i == 5 || i == 10 || i == 19 || i == 21 || i == 22){
JButton button = new JButton(Y);
pane.add(button);
button.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource()==button)
{
if(button.getText() == Y) button.setText(X);
else button.setText(Y);
}
}
});
} else {
JButton button = new JButton();
pane.add(button);
button.setEnabled(false);
button.setBorderPainted(false);
}
}
}
@Override
public void actionPerformed(ActionEvent e) {
}
}
Спасибо заранее!
Ваш код выглядит как ОК, некоторые очевидные ошибки синтаксиса. В чем проблема, с которой вы столкнулись? – KDM
Ну, код запускает массив, поэтому я бы не сказал, что с ним есть проблема. Я спрашивал, есть ли способ обменять два конкретных JButtons, если я нажму только один из них. Например, у меня есть массив, подобный этому http://puu.sh/jMukP/a7796f7df6.png ... И когда я нажимаю первый X, например, в первой строке, я хочу, чтобы он повернулся к Y и один на противоположной стороне (Y), чтобы превратиться в X и наоборот. Просто, чтобы кнопки переключались со своими противоположностями. – Sara
Какие две кнопки вы хотите поменять местами? Я не вижу ссылки на кнопку «other» в прослушивателе действий. – KDM