2016-05-28 15 views
0

JPanelにコンポーネントを追加しようとしていますが、正しいサイズではなく適切なサイズになっていません。これはコンポーネントのための私のコードです。JComponentsが正しく描画されない

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

まず、描画するときにイメージを読み込まないでください。それはあなたのパフォーマンスを破壊するでしょう。次に、あなたはあなたの絵をどこでやっていますか?それは 'paintComponent(Graphics)'にあるべきです。いくつかのコードが必要になるかもしれません。 – Obicere

+0

@ Obicereオオプス、私はpaintComponenetに入れていませんでした。コンポーネントが正しく描画されるようになりましたが、ボタンのサイズと位置が正しく設定されていません。 – stefvanschie

+0

1)すぐに役立つようにするには、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。 2)画像を取得する方法の1つは、[このQ&A](http://stackoverflow.com/q/19209650/418556)に表示されている画像にホットリンクすることです。 –

答えて

2

JPanelのデフォルトのレイアウトマネージャは、FlowLayoutです。レイアウトマネージャは、ボタンのサイズと位置を決定します。

ボタンに適切なレイアウトマネージャを使用すると、その方法が表示されます。

たとえば、パネルの中央にボタンを表示し、GridBagLayoutを使用することができます。

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

詳細および例については、Layout ManagersのSwingチュートリアルを参照してください。

関連する問題