2011-10-18 20 views
1
import java.awt.BorderLayout; 
import java.awt.FlowLayout; 
import javax.swing.*; 

public class FileCutter 
{ 
    public static void main(String[] args) 
    { 
     CutterWindow cw = new CutterWindow(); 
     cw.setResizable(false); 
     cw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     cw.setVisible(true); 
    } 
} 

class CutterWindow extends JFrame 
{ 
    private JTabbedPane tabbedPane = new JTabbedPane(); 

    public static final int DEFAULT_WIDTH = 470; 
    public static final int DEFAULT_HEIGHT = 480; 
    public CutterWindow() 
    { 
     this.setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); 
     tabbedPane.add("File Cut",new FileCutPanel()); 
     this.add(tabbedPane); 
    } 

} 

class FileCutPanel extends JPanel 
{ 
    private JLabel lblFileName = new JLabel("File Name:"); 
    private JTextField txtFileName = new JTextField(); 
    private JLabel lblFileSize = new JLabel("File Size:"); 
    private JTextField txtFileSize = new JTextField(); 
    private JButton btnViewFiles = new JButton("..."); 

    private JPanel panelSelectOperatingFile = new JPanel(); 

    public FileCutPanel() 
    { 
     panelSelectOperatingFile.setLayout(new FlowLayout()); 
     panelSelectOperatingFile.add(lblFileName); 
     txtFileName.setColumns(20); 
     txtFileName.setEditable(false); 
     panelSelectOperatingFile.add(txtFileName); 
     panelSelectOperatingFile.add(btnViewFiles); 
     panelSelectOperatingFile.add(lblFileSize); 
     panelSelectOperatingFile.add(txtFileSize); 
     txtFileSize.setColumns(20); 
     txtFileSize.setEditable(false); 

     this.add(panelSelectOperatingFile); 
    } 
} 

その結果、panelSelectOperatingFileパネルの5つのコンポーネントは同じ行にあり、ウィンドウの幅を超えています。私はJPanelのデフォルトのレイアウトがflowlayoutであることを知っています。前の行にスペースがない場合、コンポーネントが次の行に配置されることが予想されます。問題を理解しようとしましたが、できませんJPanelのコンポーネントは自動的に行を変更しません

答えて

2

panelSelectOperatingFileパネルを使用しないでください。拡張しているJPanelにコンポーネントを追加するだけです。

FlowLayoutsをネストすることはできません。理由は次のとおりです。

Oracle FlowLayout Tutorial

+0

これを避ける方法は? 'panelSelectOperatingFile'は最初のパネルなので、JPanelに他のパネルを配置します。 – cloud

+0

提供されたリンクを見てください –

+0

おかげさまで私はそれを慎重に見ていきます。まだ質問がある場合は、もう一度お尋ねしていただけますか? – cloud

関連する問題