Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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 swing设置大小_Java_Swing_Jframe - Fatal编程技术网

Java swing设置大小

Java swing设置大小,java,swing,jframe,Java,Swing,Jframe,我有一个问题,我设置了框架的大小,但不起作用。我找到了一个关于这个的话题,但对我没有帮助 我尝试了getContentPane().getSize(500500),但什么都没有 import java.awt.event.*; import java.awt.*; import javax.swing.*; public class Mere extends JFrame{ private JPanel b; public Mere(String titlu){

我有一个问题,我设置了框架的大小,但不起作用。我找到了一个关于这个的话题,但对我没有帮助

我尝试了
getContentPane().getSize(500500)
,但什么都没有

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class Mere extends JFrame{
    private JPanel b;
    public Mere(String titlu){
        setSize(500,500);
        setLayout(null);
        this.getSmth();
        pack();
        show();
    }
    public void getSmth(){
        JLabel user=new JLabel("User");
        user.setBounds(10,10,80,25);
        getContentPane().add(user);

        JTextField userText=new JTextField(20);
        userText.setBounds(100,10,160,25);
        getContentPane().add(userText);

        JPasswordField pas=new JPasswordField(20);
        pas.setBounds(100,40,160,25);
        getContentPane().add(pas);

        JButton n=new JButton("Register");
        n.setBounds(180,80,100,30);
        getContentPane().add(n);

        JLabel pass=new JLabel("Pass");
        pass.setBounds(10,40,100,25);
        getContentPane().add(pass);
        getContentPane().setVisible(true);
    }
    public static void main(String[]args){
        new Mere("yas");
    }
}
  • 您正在调用
    pack()setSize()
    后的code>

    使此窗口的大小适合其子组件的首选大小和布局。如果任意一个尺寸小于上一次调用setMinimumSize方法指定的最小尺寸,则生成的窗口宽度和高度将自动放大

    因此,您宁愿重写
    getPreferredSize()
    方法,或者删除
    pack()
    调用。见(是)

    但是,最佳做法是使用布局管理器(如下所述),然后调用
    pack()
    ,让管理器在为您计算
    preferredSize
    的同时完成它的工作

  • 您还使用了
    null
    布局。Swing设计用于处理不同的PLAF、屏幕大小和分辨率,而像素完美的GUI似乎是制作复杂GUI的最好、更快的方法。您在这方面做得越多,维护GUI时遇到的问题就越多,所以请继续使用适当的GUI或它们的组合。看到和

  • 另一件事是,您没有将程序放在上,有关如何使用它的示例,请参见和

  • 我看到的另一件事是,你正在扩展
    JFrame
    ,它翻译成英语,它说你的类是一个
    JFrame
    JFrame
    在你需要将它添加到另一个
    组件时是不灵活的,相反,您应该创建一个
    JFrame
    实例,如果确实需要扩展某些东西,可以从
    JPanel
    扩展

  • 您正在调用
    pack()setSize()
    后的code>

    使此窗口的大小适合其子组件的首选大小和布局。如果任意一个尺寸小于上一次调用setMinimumSize方法指定的最小尺寸,则生成的窗口宽度和高度将自动放大

    因此,您宁愿重写
    getPreferredSize()
    方法,或者删除
    pack()
    调用。见(是)

    但是,最佳做法是使用布局管理器(如下所述),然后调用
    pack()
    ,让管理器在为您计算
    preferredSize
    的同时完成它的工作

  • 您还使用了
    null
    布局。Swing设计用于处理不同的PLAF、屏幕大小和分辨率,而像素完美的GUI似乎是制作复杂GUI的最好、更快的方法。您在这方面做得越多,维护GUI时遇到的问题就越多,所以请继续使用适当的GUI或它们的组合。看到和

  • 另一件事是,您没有将程序放在上,有关如何使用它的示例,请参见和

  • 我看到的另一件事是,你正在扩展
    JFrame
    ,它翻译成英语,它说你的类是一个
    JFrame
    JFrame
    在你需要将它添加到另一个
    组件时是不灵活的,相反,您应该创建一个
    JFrame
    实例,如果确实需要扩展某些东西,可以从
    JPanel
    扩展


  • 非常感谢,我使用null作为布局是因为它更简单。记住,更简单并不总是正确的,一旦你学会使用布局管理器,你就会发现使用它们更简单是的,你是对的。我想我会试试GridBagLayout,不管怎样,谢谢你的提示:Drember,你可以混合使用它们,你可以使用GridBagLayout和FlowLayout,还有BoxLayout,还有你想要的所有组合。现在我需要一点布局经验,让我的程序看起来很棒。非常感谢,我使用null作为布局是因为它更容易。记住,更容易并不总是正确的,一旦你学会使用布局管理器,你就会发现使用它们更容易。是的,你是对的。我想我会试试GridBagLayout,不管怎样,谢谢你的提示:Drember,你可以混合使用它们,你可以使用GridBagLayout和FlowLayout,还有BoxLayout,还有你想要的所有组合。现在我需要一点布局经验,让我的程序看起来很棒。