【问题标题】:adding buttons to JPanel将按钮添加到 JPanel
【发布时间】:2026-01-17 01:50:02
【问题描述】:

我有这段代码可以创建从 A 到 Z 的按钮,然后当单击该按钮时会出现 JOption 消息,说明单击了哪个按钮(我还没有添加那部分代码)

但我的问题是我不知道如何将按钮代码添加到面板然后显示它。因为我想为刽子手游戏的每个部分创建 4 个面板

  • 面板 1 = 流布局中的按钮
  • 面板 2 = 刽子手的图像
  • 面板 3 = 隐藏词
  • 面板 4 = 控制按钮

有人可以帮忙吗?

这是我目前的代码:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Hangman extends JFrame{

    public Hangman(){

        setLayout(new FlowLayout());

        for(char i = 'A'; i <= 'Z'; i++){
            String buttonText = new Character(i).toString();
            JButton button = getButton(buttonText);
            add(button);
        }
    }
    public JButton getButton(final String text){
    final JButton button = new JButton(text);
        button.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){

            }
        });
        return button;
    }
    public static void main (String [] args){
        JFrame frame = new JFrame();
        frame.setVisible(true);
    }
}

【问题讨论】:

  • 提供默认情况下应显示的 GUI 的 ASCII 艺术,以及拉伸到额外宽度和高度时的外观(以显示哪些组件得到额外的)。
  • 提示:我会将getButton 方法重命名为createButton。通常,getter 只返回一个现有对象。它很少创建一个,所以名字很混乱

标签: java swing jpanel layout-manager


【解决方案1】:

我想你忘了调用 setSize 方法

public static void main (String [] args){
   JFrame frame = new JFrame();
   frame.setSize(200,300);
   frame.setVisible(true);
   }

【讨论】: