Dyl*_*der 1 java user-interface swing awt
赋值很简单,我们需要做的就是让代码创建一个带有红色面板的窗口,其中包含一个按钮和标签.这是迄今为止的代码以及测试器类.我把标签显示在窗口上,但它在一个奇怪的地方.我无法显示按钮以显示为红色的背景.
这是我最困难的地方:
import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class MyCustomFrame extends JFrame
{
public MyCustomFrame()
{
createComponents();
setSize(FRAME_WIDTH, FRAME_HEIGHT);
}
private void createComponents()
{
JPanel panel=new createPanel();
button=new JButton("Push Me");
label=new JLabel("This is a label");
add(button);
add(label);
}
private JButton button;
private JLabel label;
final int FRAME_WIDTH = 800;
final int FRAME_HEIGHT = 800;
public void createPanel()
{
JPanel panel=new JPanel();
panel.setBackground(Color.RED);
//button=new JButton("Push Me");
//label=new JLabel("This is a label");
}
public void createFrame()
{
JFrame frame=new JFrame();
add(frame);
frame.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
这是测试人员类:
import javax.swing.JFrame;
public class MyCustomFrameViewer
{
public static void main(String[] args)
{
MyCustomFrame frame = new MyCustomFrame();
frame.setTitle("My first frame");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
您创建JPanel,面板,但不添加任何内容,然后永远不会将面板添加到您的JFrame.您应该将组件添加到JPanel面板,然后将面板对象添加到JFrame.
请注意,JPanel默认使用FlowLayout,因此它更容易接受多个其他组件而无需特殊的添加方法.JFrame的contentPane使用BorderLayout,使用起来稍微复杂一些.