BoD*_*ely 0 java swing jpanel paintcomponent
我正在使用相同的数字来设置框架的大小,因为我要绘制矩形,但图形比我的JFrame大.为什么是这样?
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Test {
public static void main(String[] arguments) {
Test test = new Test();
JFrame frame = new JFrame();
DrawPane contentPane = test.new DrawPane();
frame.setContentPane(contentPane);
frame.setSize(300, 400);
frame.setVisible(true);
}
private class DrawPane extends JPanel {
@Override
protected void paintComponent(Graphics g) {
g.setColor(Color.YELLOW);
g.fillRect(0, 0, 300, 400);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是因为边界.这是一个很好的例子,为什么你不应该明确地确定你的大小JFrame.而是从您的调用setSize覆盖getPreferredSize方法JPanel:
private class DrawPane extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.YELLOW);
g.fillRect(0, 0, 300, 400);
}
@Override
public Dimension getPreferredSize() {
return new Dimension(300, 400);
}
}
Run Code Online (Sandbox Code Playgroud)
然后调用pack你的JFrame,而不是setSize和你JFrame会调整它根据其内容的大小.
| 归档时间: |
|
| 查看次数: |
215 次 |
| 最近记录: |