JComponents未正确绘制

时间:2016-05-28 18:07:44

标签: java swing

我正在尝试将组件添加到我的JPanel,但是它们的大小不正确而且位置不正确。这是我的组件代码。

button = new JButton();
button.setSize(100, 100);
button.setLocation(400, 400);
button.setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR));
vm.panel.add(button);

它也落后于我正在绘制的其他东西,所以它不可见(这就是为什么我制作光标十字准线,看看我的按钮在哪里)。这就是我所画的。

g.drawImage(ImageIO.read(getClass().getResourceAsStream("/background.jpg")), 0, 0, vm.panel.getWidth(), vm.panel.getHeight(), null);
g.setColor(Color.WHITE);
g.fillRoundRect(200, 200, 880, 560, 100, 100);
g.setColor(Color.BLACK);
g.setFont(new Font("Arial", Font.PLAIN, 48));
g.drawString("Login", 575, 300);

1 个答案:

答案 0 :(得分:2)

  

然而,按钮的大小和位置设置不正确。

JPanel的默认布局管理器是FlowLayout。布局管理器将确定按钮的大小和位置。

因此,使用适当的布局管理器显示按钮的方式。

例如,您只是希望显示在面板中心的按钮可以使用GridBagLayout。

panel.setLayout( new GridBagLayout() );
panel.add(button, new GridBagConstraints());

阅读Layout Managers上的Swing教程,了解更多信息和示例。