2017-09-26 3 views
0

私はJFrameコンポーネントにカスタム位置を使用する必要があります。私はJavaのドキュメントを使ってインセットオブジェクトを使用してカスタム位置を作成しようとしましたが、java;カスタム位置にコンポーネントを追加する基本的な方法(jframe)

カスタムの場所にコンポーネントを追加する方法や、カスタムの場所の使い方を簡単に学ぶことができる良いチュートリアル/ウェブ/その他がある場合は、

+0

可能な重複httpsの助けになることがあり、このコードをチェックアウト://stackoverflow.com/questions/36227097/set-custom-location-for-a-component-in-box-layout) – ParkerHalo

+0

[レイアウトマネージャの使い方]から始めてください(https://docs.oracle.com/ javase/tutorial/uiswing/layout/layoutlist.html) - ピクセル完全(またはヌル)レイアウトが簡単で、長いショットではないという考えに惑わされないでください。レイアウトマネージャーと自分自身を保存する頭が痛む – MadProgrammer

答えて

0

あなたがnullのレイアウトを試していない場合は、その後、

public static void main(String[] args) { 
    SwingUtilities.invokeLater(NullLayout::new); 
} 

NullLayout() { 
    JFrame frame = new JFrame("Basket Game"); 
    JPanel mainPanel = new JPanel(); 
    mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS)); 

    for (int i = 0; i < 4; i++) { 
     JPanel strip = new JPanel(); 
     strip.setMaximumSize(new Dimension(Integer.MAX_VALUE, 50)); 
     strip.setBorder(BorderFactory.createTitledBorder("Strip " + i)); 
     strip.add(new JLabel("Strip " + i)); 
     mainPanel.add(strip); 
    } 

    JPanel gamearea = new JPanel(); 
    gamearea.setLayout(null); 
    mainPanel.add(gamearea); 

    for (int i = 0; i < 5; i++) { 
     int x = i * 100, y = i * 100; 
     JPanel basket = new JPanel(); 
     basket.setSize(200, 50); 
     basket.setLocation(x, y); 
     basket.setBackground(Color.YELLOW); 
     basket.add(new JLabel("x = " + x + ", y = " + y)); 
     gamearea.add(basket); 
    } 

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setContentPane(mainPanel); 
    frame.pack(); 
    frame.setResizable(false); 
    frame.setSize(600, 600); 

    frame.setVisible(true); 
} 

}([ボックスのレイアウト内のコンポーネントの設定カスタムの場所]の

関連する問題