2016-10-28 4 views
0

私はJava IIクラスの割り当てを完了していました.JFrameのラベルの下にボタンを配置したかったのです。JFrame内のJButtonにFlowLayoutを適用することはできますか?

button.setLayout(new FlowLayout()); 

と同様に:私が試したん

FlowLayout flow = new FlowLayout(FlowLayout.CENTER); 
    button.setLayout(flow); 

をどちらもボタンの位置に影響を与えました。アサインにはボタンを配置する必要はなかったので、おそらく私は自分のために複雑なものになっています。

+1

ボタンが添加された成分は、(とにかく 'JPanel'のデフォルトのレイアウトである)' FlowLayout'を持っている必要があり、ボタンに 'FlowLayout'を適用するだけのレイアウトに影響を与えますコンポーネントはボタンに追加されます。 –

+2

[this](https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html)を読むことをお勧めします。 – mre

+1

ボタンを配置しようとしている場合は、ボタンのレイアウトを編集しないでください。ボタンの親のレイアウトマネージャ(この場合はフレーム)がボタンの配置方法を制御します。 – nhouser9

答えて

0

JPanelを作成し、JPanelにレイアウトを設定してから、そのパネルに必要なボタンを追加し、そのJPanelをJFrameに追加して、残りの部分に影響を与えるようにボタンのレイアウトを変更する必要があります。コンポーネント。

public class ControlPanel extends JPanel { 

private JButton stop_jb; 
private JButton start_jb;  

public ControlPanel() { 
    initComponents(); 
} 

private void initComponents() { 

    //this.setLayout(new GridLayout(0, 2)); 
    this.setLayout(new FlowLayout()); 

    stop_jb = new JButton("Stop"); 
    stop_jb .setVisible(true); 
    stop_jb .setActionCommand("stop"); 
    this.add(stop_jb); 

    start_jb = new JButton("Start");   
    start_jb .setVisible(true); 
    start_jb .setActionCommand("Start"); 
    this.add(start_jb); 
関連する問題