Java GUI显示为空白

时间:2016-02-04 17:27:25

标签: java swing user-interface jframe jpanel

所以我正在尝试用Java创建我的第一个GUI,但它是空白的。据我所知,我做的一切都是正确的,但当然因为它只是空白我显然做错了。 我有一个mainclass和一个JFrame及其所有内容的类。 我没有收到任何错误,除了公共类MainFrame给我“可序列化类MainFrame没有声明类型为long的静态最终serialVersionUID字段”。

package main;

import javax.swing.JFrame;
import javax.swing.SwingUtilities;

import gui.MainFrame;

public class Main {

public static void main(String[] args) {

     SwingUtilities.invokeLater(new Runnable() {

         public void run() 
             MainFrame frame = new MainFrame();

             frame.setTitle("GUI");

             frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

             frame.setSize(800, 400);

             frame.setVisible(true);

        }
     });
 }

}

package gui;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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

public class MainFrame extends JFrame {

 private JButton button;
 private Container cont;

 public MainFrame(){
     Container cont = new Container();

     setLayout(new BorderLayout());

     JPanel panel = new JPanel();
     panel.setLayout(new BorderLayout());

     JButton button = new JButton("Change Color");

     panel.add(button, BorderLayout.CENTER);

     cont.add(panel, BorderLayout.CENTER);

     cont.setBackground(Color.GREEN);

     button.addActionListener(new ActionListener() {

         public void actionPerformed(ActionEvent e) {
             cont.setBackground(Color.CYAN);

         }
     });

 }
}

2 个答案:

答案 0 :(得分:3)

您没有在框架中添加Container cont

答案 1 :(得分:2)

忘记将组件添加到框架:

panel.add(cont);