所以我正在尝试用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);
}
});
}
}
答案 0 :(得分:3)
您没有在框架中添加Container cont
。
答案 1 :(得分:2)
忘记将组件添加到框架:
panel.add(cont);