Java 如何创建新的JFrame?

Java 如何创建新的JFrame?,java,swing,jframe,jbutton,Java,Swing,Jframe,Jbutton,我是Java的完全初学者,我发现一些答案对我来说有点太技术化了(即使是最基本的教程在运行代码时也会给我语法错误)。简单地说,如何将JButton添加到JFrame?我已经做到了: import javax.swing.JButton; import javax.swing.JFrame; public class JF { public static void main(String[] args) { JFrame myFrame = new JFrame();

我是Java的完全初学者,我发现一些答案对我来说有点太技术化了(即使是最基本的教程在运行代码时也会给我语法错误)。简单地说,如何将
JButton
添加到
JFrame
?我已经做到了:

import javax.swing.JButton;
import javax.swing.JFrame;

public class JF {

    public static void main(String[] args) {
        JFrame myFrame = new JFrame();
        /*some pretty basic code to initialize the JFrame i.e.
        myFrame.setSize(300, 200);
        This is as far as I got
        */
    }

}
我将非常感谢您的帮助

创建新的JFrame
//I hope this will help

import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JPanel;
public class JF extends JFrame
{
    private JButton myButton;//Here you begin by declaring the button
    public JF()//Here you create you constructor. Constructors are used for initializing variable
    {
        myButton = new JButton();//We initialize our variable
        myButton.setText("My Button"); //And give it a name
        JPanel panel1 = new JPanel();//In java panels are useful for holding content
        panel1.add(myButton);//Here you put your button in the panel

        add(panel1);//This make the panel visible together with its contents

        setSize(300,400);//Set the size of your window
        setVisible(true);//Make your window visible
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public static void main(String[] args)
    {
        JFrame frame = new JF();
        frame.setTitle("My First Button");
        frame.setLocation(400,200);
    }
}
创建
JFrame
的新实例的方法非常简单。 你所要做的就是:

JFrame myFrame = new JFrame("Frame Title");
但是现在
窗口
被隐藏,要查看
窗口
,必须使用
setVisible(布尔标志)
方法。像这样:

myFrame.setVisible(true);
添加组件 有许多方法可以将
组件添加到
JFrame

最简单的方法是:

myFrame.getContentPane().add(new JButton());//in this case we are adding a Button
这将只添加一个新的
组件
,它将填充
JFrame()

如果您不希望
组件
填满屏幕,则应将
JFrame的
ContentPane
设置为新的自定义
容器

myFrame.getContentPane() = new JPanel();
将自定义的
容器
添加到
内容窗格
中,并在其中添加所有其他内容

JPanel mainPanel = new JPanel();
myFrame.getContentPane().add(mainPanel);
如果您不想每次都编写
myFrame.getContentPane()
,那么您可以只保留
ContentPane
的一个实例

JPanel pane = myFrame.getContentPane();
基本性质 JFrame最基本的属性是:

  • 大小
  • 位置
  • 闭合操作
您可以使用以下方法设置
大小

myFrame.setSize(new Dimension(300, 200));//in pixels
myFrame.setLocation(new Point(100, 100));// starting from top left corner
或者在添加所有组件后对
JFrame
进行打包(更好的做法)

您可以使用以下方法设置
位置

myFrame.setSize(new Dimension(300, 200));//in pixels
myFrame.setLocation(new Point(100, 100));// starting from top left corner
最后,您可以通过设置
关闭操作
(按下
X
时会发生什么情况)

有4种不同的操作可供选择:

  • dou\u NOTHING\u ON\u CLOSE//什么也不发生
  • HIDE\u ON\u CLOSE//setVisible(false)
  • DISPOSE\u ON\u CLOSE//关闭JFrame,应用程序仍在运行
  • 在关闭时退出//关闭应用程序
使用事件分派线程 您应该在
事件调度线程
中初始化所有
GUI
,只需执行以下操作即可:

class GUI implements Runnable {

    public static void main(String[] args) {
        EventQueue.invokeLater(new GUI());
    }

    @Override
    public void run() {
        JFrame myFrame = new JFrame("Frame Title");

        myFrame.setLocation(new Point(100, 100));
        myFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

        JPanel mainPanel = new JPanel();
        mainPanel.setLayout(new BorderLayout());
        myFrame.getContentPane().add(mainPanel);
        mainPanel.add(new JButton("Button Text"), BorderLayout.CENTER);

        myFrame.pack();
        myFrame.setLocationByPlatform(true);
        myFrame.setVisible(true);
    }

}
创建新的JFrame 创建
JFrame
的新实例的方法非常简单。 你所要做的就是:

JFrame myFrame = new JFrame("Frame Title");
但是现在
窗口
被隐藏,要查看
窗口
,必须使用
setVisible(布尔标志)
方法。像这样:

myFrame.setVisible(true);
添加组件 有许多方法可以将
组件添加到
JFrame

最简单的方法是:

myFrame.getContentPane().add(new JButton());//in this case we are adding a Button
这将只添加一个新的
组件
,它将填充
JFrame()

如果您不希望
组件
填满屏幕,则应将
JFrame的
ContentPane
设置为新的自定义
容器

myFrame.getContentPane() = new JPanel();
将自定义的
容器
添加到
内容窗格
中,并在其中添加所有其他内容

JPanel mainPanel = new JPanel();
myFrame.getContentPane().add(mainPanel);
如果您不想每次都编写
myFrame.getContentPane()
,那么您可以只保留
ContentPane
的一个实例

JPanel pane = myFrame.getContentPane();
基本性质 JFrame最基本的属性是:

  • 大小
  • 位置
  • 闭合操作
您可以使用以下方法设置
大小

myFrame.setSize(new Dimension(300, 200));//in pixels
myFrame.setLocation(new Point(100, 100));// starting from top left corner
或者在添加所有组件后对
JFrame
进行打包(更好的做法)

您可以使用以下方法设置
位置

myFrame.setSize(new Dimension(300, 200));//in pixels
myFrame.setLocation(new Point(100, 100));// starting from top left corner
最后,您可以通过设置
关闭操作
(按下
X
时会发生什么情况)

有4种不同的操作可供选择:

  • dou\u NOTHING\u ON\u CLOSE//什么也不发生
  • HIDE\u ON\u CLOSE//setVisible(false)
  • DISPOSE\u ON\u CLOSE//关闭JFrame,应用程序仍在运行
  • 在关闭时退出//关闭应用程序
使用事件分派线程 您应该在
事件调度线程
中初始化所有
GUI
,只需执行以下操作即可:

class GUI implements Runnable {

    public static void main(String[] args) {
        EventQueue.invokeLater(new GUI());
    }

    @Override
    public void run() {
        JFrame myFrame = new JFrame("Frame Title");

        myFrame.setLocation(new Point(100, 100));
        myFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

        JPanel mainPanel = new JPanel();
        mainPanel.setLayout(new BorderLayout());
        myFrame.getContentPane().add(mainPanel);
        mainPanel.add(new JButton("Button Text"), BorderLayout.CENTER);

        myFrame.pack();
        myFrame.setLocationByPlatform(true);
        myFrame.setVisible(true);
    }

}

回到教程。如果你遇到了一些你无法理解的错误,过来问问。不要要求我们为您编写自定义教程。
myFrame.setSize(300200)您已经在第二行代码中出错。设置框架大小的方法是添加所有组件(在布局填充和边框中使用适当的空白),然后打包框架。“我非常感谢您的帮助!!”如果出现问题,您应该仔细检查并询问具体问题。“您已经在第二行代码中出错了。”更正,所有GUI创建都应该在事件调度线程上完成,因此即使第一行代码也错了。作为第二个次要建议。不要使用缩写词,如plz或符号,如返回教程。如果你遇到了一些你无法理解的错误,过来问问。不要要求我们为您编写自定义教程。
myFrame.setSize(300200)您已经在第二行代码中出错。设置框架大小的方法是添加所有组件(在布局填充和边框中使用适当的空白),然后打包框架。“我非常感谢您的帮助!!”如果出现问题,您应该仔细检查并询问具体问题。“您已经在第二行代码中出错了。”更正,所有GUI创建都应该在事件调度线程上完成,因此即使第一行代码也错了。作为第二个次要建议。不要使用缩写词,如plz或符号,因为它似乎只会在我们实际对特定问题或答案发表评论时通知我们。“这个答案现在需要改进吗?”只有两个细微的改进