JButton button_one=new JButton();
button_one.setPreferredSize(new Dimension(100,150));
mainpanel.add(button_one);
button_one.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent button_1_picked){
amount_of_cards_picked=amount_of_cards_picked+1;
cardamountcheck();
if(twocardspicked==true){
userpick2=0;
System.out.println(setoutcards[userpick2]);
pairdetermination();
}
else if(twocardspicked==false){
userpick1=0;
System.out.println(setoutcards[userpick1]);
}
}
});
JButton button_two = new JButton();
button_two.setPreferredSize(new Dimension(100, 150));
mainpanel.add(button_two);
button_two.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent button_2_picked){
amount_of_cards_picked=amount_of_cards_picked+1;
cardamountcheck();
if(twocardspicked==true){
userpick2=1;
System.out.println(setoutcards[userpick2]);
pairdetermination();
}
else if(twocardspicked==false){
userpick1=1;
System.out.println(setoutcards[userpick1]);
}
}
});
基本上,当点击其中一个按钮时,代码中的变量就会发生变化。这些按钮运行良好,完全符合我的要求,但当按钮超过13个时,它们不会全部出现,我需要52个。
我想在JPanel中添加52个按钮。所有的人都是ActionListeners。
完成。我创建了一个GUI,显示52个JButtons
。我把它们做成了OP的一半大小,这样GUI就更适合回答问题了。
这是完整的可运行代码。一个最小的可复制的例子。
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class FiftyTwoJButtonGUI implements Runnable {
public static void main(String[] args) {
SwingUtilities.invokeLater(new FiftyTwoJButtonGUI());
}
@Override
public void run() {
JFrame frame = new JFrame("52 JButton GUI");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(createMainPanel(), BorderLayout.CENTER);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
private JPanel createMainPanel() {
JPanel panel = new JPanel(new GridLayout(0, 13, 5, 5));
panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
CardListener listener = new CardListener();
for (int i = 0; i < 52; i++) {
JButton button = new JButton("" + (i + 1));
button.addActionListener(listener);
button.setPreferredSize(new Dimension(50, 75));
panel.add(button);
}
return panel;
}
public class CardListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent event) {
JButton button = (JButton) event.getSource();
int cardNumber = Integer.valueOf(button.getText());
System.out.println(cardNumber);
}
}
}
我有一个二维数组(矩阵),尺寸为50x50。在这些矩阵中,每个位置的值为 0 或 1。此矩阵由具有 50x50 按钮的网格布局呈现,如果值为 0 或 1,则这些按钮为白色或黑色。如果我按下一个按钮,矩阵中的相关位置应该将值更改为1。为了实现这一点,我为每个矩阵位置创建了一个按钮的网格,由for循环执行。我还为此 for 循环中的每个按钮实现了一个 ActionListener。我尝试使用 Acti
我知道以前可能有人问过这个问题,但我似乎找不到适合我情况的合理答案。 我有一个表单,表单中有多个提交按钮,我需要知道按下了哪个按钮。 表单内部的一个小代码段可能如下所示: fmt:消息部分只是考虑了客户端的语言并将单词放在按钮上。 到目前为止,我在submit按钮上添加了一个动作处理程序,并在表单上添加了一个隐藏的input元素,告诉我哪个按钮被按下了,但是我需要在不依赖javascript的情况
有人知道怎么解决吗?
我试图构建一个GUI,它有许多按钮(JButton)/下拉项(JMenuItem),当按下每个包含字母的按钮时,相关的字母将添加到标签中。 我无法识别按下了哪个按钮。你能给我一个关于如何做到这一点的提示吗?
我有一个文本框和一个下拉菜单。根据下拉菜单中选择的值,如果需要,我将textbox更改为datepicker字段。功能工作良好,但我看到在激活datepicker时,textbox和dropdown之间有一个小按钮。当datepicker被销毁时,它就会消失。 有什么想法,我可以摆脱这个按钮,只是触发datepicker日历时,用户点击文本框?
我已经创建了一个webview应用程序。按音量键时,我的应用程序崩溃。这是logcat中的错误 W/ViewRootImpl[MainActivity]:由于没有窗口焦点而取消事件:KeyEvent{action=action\u UP,keyCode=keyCode\u VOLUME\u DOWN,scanCode=114,metaState=0,flags=0x28,repeatCount=0