質問

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, 、前の行にスペースがない場合、コンポーネントが次の行に配置されると予想しました。そして、私は問題を理解しようとしますが、私はできません

役に立ちましたか?

解決

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

FlowLayoutsをネストすることはできません。ここにあります:

Oracle FlowLayoutチュートリアル

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top