Java 如何创建新的JFrame?
我是Java的完全初学者,我发现一些答案对我来说有点太技术化了(即使是最基本的教程在运行代码时也会给我语法错误)。简单地说,如何将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();
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或符号,因为它似乎只会在我们实际对特定问题或答案发表评论时通知我们。“这个答案现在需要改进吗?”只有两个细微的改进