首页 > 解决方案 > 调用创建 JButton 的代码时出错(不可见)

问题描述

我创建了一个刽子手游戏,并想JFrame在它周围添加一个。我开始制作主屏幕,但开始时遇到问题JButton。由于某种原因,它根本没有出现,我尝试了多种解决方案。

import java.util.*;
import javax.swing.*;

public class mainScreen extends JFrame {
      JPanel mainPanel = new JPanel();
      JButton startButton = new JButton("Start");


  public mainScreen() {
   JFrame mainFrame = new JFrame("Main Screen");
  mainFrame.add(new JLabel(new ImageIcon("C:/Users/Owner/Desktop/Java Projects/hangman_image.jpg")));
   mainFrame.setSize(1920, 1080);
   mainFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE );
   mainPanel = new JPanel();
   startButton = new JButton("Start");
   mainPanel.add(startButton);

   mainFrame.setVisible(true);
   }
} 

出现框架但不显示按钮本身(我尝试摆脱图像以查看它是否覆盖它)。

标签: javaswingjframejbutton

解决方案


您已经创建了面板,但即使您的按钮已添加到面板中,您也没有将其添加到大型机。

import javax.swing.*;

class Test1 extends JFrame {
JPanel mainPanel = new JPanel();
JButton startButton = new JButton("Start");


public Test1() {
    JFrame mainFrame = new JFrame("Main Screen");
    mainFrame.add(new JLabel(new ImageIcon("/filelocation")));
    mainFrame.setSize(1920, 1080);
    mainFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE );
    mainPanel = new JPanel();
    startButton = new JButton("Start");
    mainPanel.add(startButton);
    //here you add your panel to mainFrame
    mainFrame.add(mainPanel);
    mainFrame.setVisible(true);
}

}


public class Test{
public static void main(String args[]) {
    new Test1();
}
} 

希望这可以帮助。


推荐阅读