问题:我无法将单击按钮的值添加到ArrayList中。
示例:如果我单击名为E的按钮,那么我希望将E添加到arraylist中,之后如果我单击按钮S,那么它应该添加相同的arraylist。但这并不是在ArrayList中添加任何东西。它只显示当前单击的按钮
public class WordFinder extends JFrame implements ActionListener {
private JButton buttons[];
ArrayList<String> LettersClicked = new ArrayList<String>();
private JTextArea jta;
private JLabel jLabel;
public WordFinder(){
int numberOfLetters = 64;
buttons = new JButton[numberOfLetters];
JFrame frame = new JFrame("wordfinder");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setBackground(Color.red);
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
JPanel topPanel = new JPanel();
topPanel.setBorder(BorderFactory.createLineBorder(Color.GREEN));
topPanel.setPreferredSize(new Dimension(600, 600));
topPanel.setMaximumSize(new Dimension(600, 600));
topPanel.setBackground(Color.red);
JPanel bottomPanel = new JPanel();
bottomPanel.setBorder(BorderFactory.createLineBorder(Color.yellow));
bottomPanel.setPreferredSize(new Dimension(600, 300));
bottomPanel.setMaximumSize(new Dimension(600, 300));
bottomPanel.setBackground(Color.green);
Font f3 = new Font(Font.DIALOG, Font.BOLD, 35);
for (int i = 0;i<numberOfLetters;i++) {
char letter = alphabet();
buttons[i] = new JButton(String.valueOf(letter));
buttons[i].setFont(f3);
// buttons[i].setMinimumSize(new Dimension(40, 20));
buttons[i].setPreferredSize(new Dimension(65, 65));
buttons[i].setMargin(new Insets(0,0,0,0));
buttons[i].setBackground(Color.white);
buttons[i].setFocusPainted(false);
buttons[i].addActionListener(this);
topPanel.add(buttons[i]);
}
String buttValue = "";
jLabel = new JLabel(""+buttValue);
jLabel.setFont(f3);
bottomPanel.add(jLabel);
LettersClicked.add(jLabel.toString());
for (int z = 0; z<LettersClicked.size(); z++){
JLabel aa = new JLabel(""+LettersClicked.size());
bottomPanel.add(aa);
}
mainPanel.add(topPanel);
mainPanel.add(bottomPanel);
frame.getContentPane().add(mainPanel);
frame.setSize(1000,1000);
frame.setMinimumSize(new Dimension(1000, 1000));
frame.setVisible(true);
}
public char alphabet(){
Random rnd = new Random();
String alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char letter = alphabets.charAt(rnd.nextInt(alphabets.length()));
return letter;
}
@Override
public void actionPerformed(ActionEvent actionEvent) {
JButton button = (JButton) actionEvent.getSource();
jLabel.setText(button.getText());
LettersClicked.add(button.getText());
}
}
我认为您对GUI上显示的JLabel
和ArrayList
的内容感到困惑。问题实际上在前者。
当前的实现将替换JLabel
的文本,而不是为每个按下的按钮追加文本。
因此,在actionperformed()
方法中,更改这一行
jLabel.setText(button.getText());
jLabel.setText(jLabel.getText() + button.getText());
我做了一个程序,利用3类,锦标赛,游戏和俱乐部。我在比赛和俱乐部中的方法都很好,但在冠军联赛的主要方法中,我遇到了问题。我有两个ArrayList,一个是with objects club,另一个是with objects game。在我的主要方法中,我使用while循环和切换用例创建了一个菜单,用户可以1-创建俱乐部,2-创建游戏,3-列出结果,4-注册结果。然而,我的所有案例都有相同的问题:不
我想改变Jupyter内核的路径,将其设置为我在机器中使用的路径。 以下是安装在jupyter中的原始内核: 可用内核: python3/home/n/。local/share/jupyter/kernels/python3 python2/usr/local/share/jupyter/kernels/python2 然后我在我的机器中检查了python3的路径,如下所示: /usr/bin/p
我已经使用Netbeans GUI构建器创建了我的GUI。JList被添加到scrollpane中,如果我硬编码了JList的内容,所有内容都显示得很好。 但是如果我尝试通过动态添加项,则不会出现任何内容。 我只想显示JList中的主题以供视觉使用,其余的都是在后台完成的。
在我的android{}部分,我试图为五月免费和付费应用程序放置两种不同的构建类型。 这是我的控制台日志: 正在执行任务:[:Transport:CompileDebugJava] 按需配置是一个正在酝酿的特性。下载http://repo1.maven.org/maven2/com/android/tools/build/gradle/0.8.3/gradle-0.8.3.pom下载http://
我试图向mongodb发送一个数组,但是返回一个空的,而且mongodb文档中从来没有出现biddingGroup字段。我看过堆栈文章,并看到了关于模式的建议。我试过了 应用程序JS 感谢任何帮助。
但是,后来当我试图将整数添加到正确的“内部”数组列表中时,我无法将整数添加到ArrayList类型的位置中。我还得到一个索引超出界限的错误。 解决这个问题的方法是将整数强制转换为ArrayList类型,但这意味着我将在内部数组列表中添加一个数组列表,这不是我想要的。我想在正确的“内部”ArrayList中添加一个int。