2017-02-21 6 views
-2

これは、jbuttonのサイズがframeに等しいフレームを作成していて、ラベルが必要な場所に届かない。複数のコンポーネントを追加するときにJButtonのサイズがJframeに等しくなる

public class Try extends JFrame { 
    public Try(){ 
     JFrame f = new JFrame("TRY"); 
     JButton btn = new JButton(HI); 
     JLabel l = new JLabel("label"); 
     btn.setBounds(50,100,100,50); 
     l.setBounds(50,0,100,100); 
     f.add(btn); 
     f.add(l);***strong text*** 
     f.setSize(500,500); 
     f.setVisible(true); 
     f.getContentPane().setBackground(Color.white); 
    } 

    public static void main(String[] args){ 
     Try t = new Try(); 
    } 
} 
+1

必要はASCIIを提供するレイアウトマネージャhttps://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html – Jerry06

+0

で使用するようにしてくださいアート、または最小サイズのGUIの*意図された*レイアウトの単純な描画、さらに幅と高さの変更が可能な場合。 (これらの境界にボタンとラベルが配置されていると、GUIに**ロット**の余分なスペースがあり、さらに多くのコンポーネントが存在することを示唆しています)。 –

+0

インデント固定 – stealthjong

答えて

-1

デフォルトではBorderLayoutが付属しているため、フレームに使用するレイアウトを指定する必要があります。

f.setLayout(null); 

追加する各JFrameコンポーネントの位置とサイズを完全にカスタマイズする場合は、nullレイアウトを試してください。 が、nullレイアウトが最良の選択ではないことを覚えておいてください:)

+2

* "Try nullもしあなたがしたいと思えばレイアウト。 "*。バグのコードを維持するためにたくさんのお金を得る(または解雇されたい)。 Java GUIは、異なるロケールの異なるPLAFを使用して、異なるOS、画面サイズ、画面解像度などで動作する必要があります。したがって、ピクセルの完全なレイアウトには役立ちません。代わりに、レイアウトマネージャや[それらの組み合わせ](http://stackoverflow.com/a/5630271/418556)と[空白](http://stackoverflow.com/a/17874718/)のレイアウトパディングとボーダーを使用してください。 418556)。 –

+0

私はまだUNIのJavaを学んでいますので、私の答えは完璧ではないかもしれませんが、できるだけ多くの人を助けようとしています。私を訂正してくれてありがとう、将来それを覚えています。 – Helvijs

+2

*「できるだけ多くの人を援助しようとしています」*あなたの現在のレベルでは、スイングのレイアウトをよく知っている人の答えを読んで理解することができます。 * "それは覚えています.." *私たちのところでショーをやめてください。 **太字**の場合は**太字**を、*斜体の場合は*イタリック*を使用します。 –

関連する問題