java - 在 JPanel 中插入按钮

标签 java swing jpanel jbutton

我在 Java 中使用 swing,我需要创建一个 JButton 并将其放入 JPanel 中。

我查阅了教程,并且做到了这一点:

public void crearNuevaMiga(String nombre)
{
    JButton nuevo = new JButton(nombre);
    this.MigasDePan.add(nuevo);
    nuevo.setVisible(true);
    nuevo.setLocation(new Point(migaX, migaY));
    System.out.println(nuevo.getLocation().x + " "+ nuevo.getLocation().y);
    migaX = migaX-avanceMigas;
}

我这样做了,当我调用该函数时,我看不到按钮。我在 NetBeans 设计器上放置了一个按钮并获取 X 和 Y 位置。然后,在变量 migaX 和 migaY 中我放置了 X 和 Y 位置,因此按钮需要位于相同的位置,但它不在那里。

有人知道为什么吗?也许这样放置位置不正确?

感谢您的宝贵时间!

编辑:MigasDePan 是我的 JPanel

最佳答案

下面是一个简单的示例,将 JButton 放入 JPanel 中,并将 JPanel 放入 JFrame 中。我在没有使用任何 GUI 构建器的情况下创建了这段代码。

  1. 我在main方法中调用了SwingUtilities的invokeLater方法,将Swing组件的创建和使用放在Event Dispatch thread上。 Oracle 和我坚持要求您在事件调度线程上启动每个 Swing 应用程序。

  2. 我使用了 JFrame。您必须按照在 run 方法中调用 JFrame 方法的顺序来调用它们。

  3. 我使用了 JPanel。我将 JButton 放在 JPanel 的中间,因为它是 JPanel 上的唯一组件。

  4. 我使用了 Swing layout ,边框布局。不同的Swing布局用于创建不同的Swing组件布局。

这是简短的、独立的、可运行代码。

package com.ggl.testing;

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class MyButton implements Runnable {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new MyButton());
    }

    @Override
    public void run() {
        JFrame frame = new JFrame("My Button");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(createMainPanel());
        frame.pack();
        frame.setVisible(true);
    }

    private JPanel createMainPanel() {
        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());

        JButton myButton = new JButton("My Button");
        panel.add(myButton);

        return panel;
    }

}

关于java - 在 JPanel 中插入按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37253452/

相关文章:

java - 局部变量可能尚未初始化构造函数/方法

java - 玩框架,你如何在客户端访问cookie(javascript)?

java - URLConnection inputStream 返回 "Busy"为什么?

java - 为什么 DocumentFilter 没有给出预期的结果?

Java ImageIO.read(文件与 URL)

java - JPanel:实现我自己的 PaintComponent() 和渲染子项都不起作用

java - 以原始时区打印日期

java - 我想在图形用户界面中绘制矩形

java - 为什么我的矩形在 JPanel 中以奇怪的形式显示?

java - 无法使用类路径资源将 JPanel 绘制为背景图片