我的代码只有一个小问题;我目前正在使用卡片布局,其中目前有3个按钮。 1(在初始面板上)将JLabel添加到初始面板,另一个(也在初始面板上)切换到第二个面板,该面板仅包含返回到初始面板的第三个按钮。我的问题是,单击面板之间交换的按钮也会触发创建JLabel的第一个按钮。
这是我的代码的一部分:
every()
然后是动作侦听器部分:
next()
答案 0 :(得分:0)
您尚未对{
语句使用花括号(if
)。如果if
语句没有大括号,则if
块中仅包含if
之后的行。
例如您的代码
if(event.getSource()==adddeck)
decklist.add(new Deck(newdeck.getText()));
//panel for label/buttons
JPanel deckpanel;
deckpanel= new JPanel();
deckpanel.setLayout(new GridLayout(1,2));
//label with new deck name
JLabel decklabel;
decklabel = new JLabel(newdeck.getText());
deckpanel.add(decklabel);
deckpanel.revalidate();
等效于:
if(event.getSource()==adddeck) {
decklist.add(new Deck(newdeck.getText()));
}
//panel for label/buttons
JPanel deckpanel;
deckpanel= new JPanel();
deckpanel.setLayout(new GridLayout(1,2));
//label with new deck name
JLabel decklabel;
decklabel = new JLabel(newdeck.getText());
deckpanel.add(decklabel);
deckpanel.revalidate();
因此,无论您单击什么按钮,始终从行//panel for label/buttons
开始执行代码。