Aaz*_*dul 2 java swing jpanel layout-manager flowlayout
The JPanel called panel only shows up as one small red square up the top center, I have tried to set the size but it doesn't seem to do anything.
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Draw extends JFrame{
private JPanel panel;
public Draw() {
super("title");
setLayout(new FlowLayout());
panel = new JPanel();
panel.setBackground(Color.RED);
add(panel, BorderLayout.CENTER);
}
}
Run Code Online (Sandbox Code Playgroud)
a的默认首选大小JPanel是0x0. FlowLayout根据组件的首选尺寸布置组件,因此组件现在具有优选的尺寸1x1(线条边框增加了一点重量).
您可以尝试添加另一个组件panel...
panel.add(new JLabel("This is some text"));
Run Code Online (Sandbox Code Playgroud)
或覆盖panel小号getPreferredSize方法...
panel = new JPanel() {
public Dimension getPreferredSize() {
return new Dimension(100, 100);
}
};
Run Code Online (Sandbox Code Playgroud)