Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
447 views
in Technique[技术] by (71.8m points)

java - button is not added to the jframe

Why doesn't the JButton appear?

package expt;

import java.awt.Graphics;

import javax.swing.*;

class th extends JFrame
{
    JButton b=new JButton("Click");

    th()
    {
        setVisible(true);

        setSize(800, 400);

        setResizable(false);

        setDefaultCloseOperation(this.EXIT_ON_CLOSE);

        setLayout(null);

        getContentPane().add(b);

    }

    public void paint(Graphics g)
    {
        g.drawString("welcome", 150, 50);   
    }

    public static void main(String args[])
    {
        new th();   
    }
}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Make 'setVisible(true)' is your last statement of the method.

Working code:

th(){

    setDefaultCloseOperation(this.EXIT_ON_CLOSE);
    setLayout(null);
    setSize(800, 400);
    setResizable(false);


    b.setSize(200, 100);   //Those line
    b.setLocation(30, 60);  //needed as using setLayout(null) 
   //b.setBounds(30, 60, 200, 100);  //Or only this method
    getContentPane().add(b);

    setVisible(true);

}

As you use setLayout(null) you should manually fixed size and location of button.

Try to avoid Null Layout

Learn about layout https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...