Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要调整窗口大小,程序才能工作_Java_Swing_Resize_Layout Manager_Flowlayout - Fatal编程技术网

Java 需要调整窗口大小,程序才能工作

Java 需要调整窗口大小,程序才能工作,java,swing,resize,layout-manager,flowlayout,Java,Swing,Resize,Layout Manager,Flowlayout,这是我的布局类的代码 import java.awt.event.*; import java.awt.*; import javax.swing.*; public class Layout extends JFrame { private JButton lb; private JButton cb; private JButton pb; private FlowLayout layout; private Container container;

这是我的布局类的代码

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class Layout extends JFrame {
    private JButton lb;
    private JButton cb;
    private JButton pb;
    private FlowLayout layout;
    private Container container;

    public Layout() {
        super("The Title");
        layout = new FlowLayout();
        container = new Container();
        setLayout(layout);

        //*Left
        lb = new JButton("L");
        add(lb);
        lb.addActionListener(
            new ActionListener(){   
                public void actionPerformed(ActionEvent event){
                    layout.setAlignment(FlowLayout.LEFT);
                    layout.layoutContainer(container);
                }
            }
        );
        //*Center
        cb = new JButton("C");
        add(cb);
        cb.addActionListener(
            new ActionListener(){   
                public void actionPerformed(ActionEvent event){
                    layout.setAlignment(FlowLayout.CENTER);
                    layout.layoutContainer(container);
                }
            }
        );      
        //*Right
        pb = new JButton("R");
        add(pb);
        pb.addActionListener(
            new ActionListener(){   
                public void actionPerformed(ActionEvent event){
                    layout.setAlignment(FlowLayout.RIGHT);
                    layout.layoutContainer(container);
                }
            }
        );
    }
}
我正在通过NewBoston youtube教程学习java(此代码来自教程)。但这一个不能像它应该的那样工作。当我点击右键(R)时,它会立即将所有按钮拖到窗口的右侧。事实并非如此。然而,当我点击右键,然后强行调整窗口大小,然后它做它应该做的。通过在main方法中添加setresizeable(false),我无法调整程序的大小,因此它无法工作。 我做错了什么


请原谅我英语不好。

最简单的方法是设置一个新的FlowLayout并调用invalidate():

更新当前的FlowLayout无效。

替换

container = new Container();


不是最简单的:-)最简单的是重新确认其中一个孩子的身份,f.i.L愿上帝保佑你,我的朋友。
container = new Container();
container = getContentPane();