Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.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 按钮未显示在Jframe中_Java_Swing_Jframe_Layout Manager_Null Layout Manager - Fatal编程技术网

Java 按钮未显示在Jframe中

Java 按钮未显示在Jframe中,java,swing,jframe,layout-manager,null-layout-manager,Java,Swing,Jframe,Layout Manager,Null Layout Manager,当我在Netbeans中运行btn3时,它没有显示。 当我在记事本中运行它时,它显示第三个按钮。 我真的不知道问题出在哪里 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Regform2 extends JFrame implements ActionListener { JLabel l1, l2, l3, l4, l5, l6, l7, l8; JTextF

当我在Netbeans中运行btn3时,它没有显示。 当我在记事本中运行它时,它显示第三个按钮。 我真的不知道问题出在哪里

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Regform2 extends JFrame implements ActionListener {

    JLabel l1, l2, l3, l4, l5, l6, l7, l8;
    JTextField tf1, tf2, tf5, tf6, tf7;
    JButton btn1, btn2, btn3;
    JPasswordField p1, p2;

    Regform2() {

        setTitle("Registration Form in Java");

        l1 = new JLabel("Registration Form in Windows Form:");
        l1.setForeground(Color.blue);
        l1.setFont(new Font("Serif", Font.BOLD, 20));

        l2 = new JLabel("Name:");
        l3 = new JLabel("Email-ID:");
        l4 = new JLabel("Create Passowrd:");
        l5 = new JLabel("Confirm Password:");
        l6 = new JLabel("Country:");
        l7 = new JLabel("State:");
        l8 = new JLabel("Phone No:");
        tf1 = new JTextField();
        tf2 = new JTextField();
        p1 = new JPasswordField();
        p2 = new JPasswordField();
        tf5 = new JTextField();
        tf6 = new JTextField();
        tf7 = new JTextField();

        btn1 = new JButton("Submit");
        btn2 = new JButton("Clear");
        btn3 = new JButton("nxt");

        btn1.addActionListener(this);
        btn2.addActionListener(this);
        btn3.addActionListener(this);

        l1.setBounds(100, 30, 400, 30);
        l2.setBounds(80, 70, 200, 30);
        l3.setBounds(80, 110, 200, 30);
        l4.setBounds(80, 150, 200, 30);
        l5.setBounds(80, 190, 200, 30);
        l6.setBounds(80, 230, 200, 30);
        l7.setBounds(80, 270, 200, 30);
        l8.setBounds(80, 310, 200, 30);
        tf1.setBounds(300, 70, 200, 30);
        tf2.setBounds(300, 110, 200, 30);
        p1.setBounds(300, 150, 200, 30);
        p2.setBounds(300, 190, 200, 30);
        tf5.setBounds(300, 230, 200, 30);
        tf6.setBounds(300, 270, 200, 30);
        tf7.setBounds(300, 310, 200, 30);
        btn1.setBounds(50, 350, 100, 30);
        btn2.setBounds(170, 350, 100, 30);
        btn3.setBounds(300, 350, 100, 30);
        add(l1);
        add(l2);
        add(tf1);
        add(l3);
        add(tf2);
        add(l4);
        add(p1);
        add(l5);
        add(p2);
        add(l6);
        add(tf5);
        add(l7);
        add(tf6);
        add(l8);
        add(tf7);
        add(btn1);
        add(btn2);
        add(btn3);
        setVisible(true);
        setSize(700, 700);
        setLayout(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == btn1) {
            int x = 0;
            String s1 = tf1.getText();
            String s2 = tf2.getText();

            char[] s3 = p1.getPassword();
            char[] s4 = p2.getPassword();
            String s8 = new String(s3);
            String s9 = new String(s4);

            String s5 = tf5.getText();
            String s6 = tf6.getText();
            String s7 = tf7.getText();
            if (s8.equals(s9)) {
                JOptionPane.showMessageDialog(btn1, "Data Saved Successfully");
            } else {
                JOptionPane.showMessageDialog(btn1, "Password Does Not Match");
            }



        } else if (e.getSource() == btn2) {
            tf1.setText("");
            tf2.setText("");
            p1.setText("");
            p2.setText("");
            tf5.setText("");
            tf6.setText("");
            tf7.setText("");


        } else {

            this.dispose();
            NewJFrame nw = new NewJFrame();
            nw.setVisible(true);


        }
    }

    public static void main(String args[]) {
        new Regform2();
    }}
如果首先放置setlayout(null),然后放置setVisible(true),btn3将显示在jframe中。像这样:

    setLayout(null);
    setVisible(true);
    setSize(700, 700);

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel contentPane = new JPanel();
    content.add(new JButton("Test"));

    this.setDefaultCloseOperation(3);
    this.setContentPane(contentPanel);
    this.setSize(Width, Height);
    this.setResizable(false);
    this.setVisible(true);

您需要添加一个JPanel。向该面板添加组件。 不要忘记将面板添加到框架中,如下所示:

    setLayout(null);
    setVisible(true);
    setSize(700, 700);

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel contentPane = new JPanel();
    content.add(new JButton("Test"));

    this.setDefaultCloseOperation(3);
    this.setContentPane(contentPanel);
    this.setSize(Width, Height);
    this.setResizable(false);
    this.setVisible(true);

此代码将工作。。。请在开始时定义主机架的代码 构造函数,例如

setTitle();
设置大小();
setLayout()


}

你是空的,布局没有任何帮助。在框架变得可见和y调用setLayout之间,将验证容器和布局组件,这可能与您尝试不使用它的操作有关您不应该
setLayout(null)
,而是
LayoutManager
,添加到
getContentPane()
并在使
JFrame
可见之前调用
pack
setLayout(null)这就是问题所在。Java GUI必须在不同的操作系统、屏幕大小、屏幕分辨率等上工作,在不同的地区使用不同的PLAF。因此,它们不利于像素完美布局。使用布局管理器,或者与布局填充和边框一起使用。JPasswordField返回字符数组有一个(非常好的)原因,我会对它进行一些调查,以及如何使用它来发挥优势…您的示例没有编译
NewJFrame
未知。请编辑。