Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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中更改帧?_Java_Swing_Jframe - Fatal编程技术网

如何在java中更改帧?

如何在java中更改帧?,java,swing,jframe,Java,Swing,Jframe,假设有一个按钮,如果你点击它,就会出现一个新的框架,以此类推 设置可见(真)功能用于显示帧。创建所需帧的对象并调用此函数。像这样的 //The applications first or the main frame import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MainFrame extends JFrame { private JButton myFirstBu

假设有一个按钮,如果你点击它,就会出现一个新的框架,以此类推

设置可见(真)功能用于显示帧。创建所需帧的对象并调用此函数。像这样的

//The applications first or the main frame
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MainFrame extends JFrame {

        private JButton myFirstButton;
        private JButton mySecondButton;

        // Constructor for a new frame

        public MainFrame {

                super("My First Button Program");

                myFirstButton = new JButton("First Frame");
                myFirstButton.setFont(new Font( "Arial", Font.BOLD, 18));
                myFirstButton.setBackground(Color.red);

                mySecondButton = new JButton("New Frame");
                mySecondButton.setFont(new Font( "Arial", Font.BOLD, 18));
                mySecondButton.setBackground(Color.green);

                Container c = getContentPane();
                FlowLayout fl = new FlowLayout(FlowLayout.LEFT);
                c.setLayout(fl);

                c.add (myFirstButton);
                c.add (mySecondButton);

                ButtonHandler handler = new ButtonHandler();    //creation of a new Object
                myFirstButton.addActionListener(handler);          // Attach/register handler to myFirstButton
                mySecondButton.addActionListener(handler);        //Attach/register handler to mySecondButton

                setSize(400, 300);
                show();
        }


        public static void main(String [] args) {

                // Make frame
                MainFrame f = new MainFrame();

                f.addWindowListener(
                        new WindowAdapter() {
                                public void windowClosing(WindowEvent e) {

                                        // This closes the window and terminates the
                                        // Java Virtual Machine in the event that the
                                        // Frame is closed by clicking on X.
                                        System.out.println("Exit via windowClosing.");
                                        System.exit(0);
                                }
                        }
                );
        } // end of main

        // inner class for button event handling
        private class ButtonHandler implements ActionListener {
                public void actionPerformed(ActionEvent e) {
                        if (e.getSource() == myFirstButton) {
                                new NewFrame1();

                        }
                        if (e.getSource() == mySecondButton) {
                                new NewFrame2();
                        }
                }
        } // end of inner class
} // end of outer class
要为第一个按钮打开的框架

//import statements here
public class NewFrame1 extends JFrame implements ActionListener
{
        //initialises the frame and opens it
        public NewFrame1()
        {
                JButton open = new JButton("New Window");
                open.addActionListener(this);
                add(open);
                setVisible(true);
        }

        public void actionPerformed(ActionEvent event)
        {
                //code for the new frame
        }
}
要为第二个按钮打开的框架

//import statements here
public class NewFrame2 extends JFrame implements ActionListener
{
        //initialises the frame and opens it
        public NewFrame2()
        {
                JButton open = new JButton("New Window");
                open.addActionListener(this);
                add(open);
                setVisible(true);
        }

        public void actionPerformed(ActionEvent event)
        {
                //code for the new frame
        }
}

制作一个
JFrame
类,例如将其称为大型机,然后从这里打开
JPanels
,这样您就有了一个集中的位置来在不同的帧、弹出窗口、选项对话框等之间通信数据


旁注:我建议使用MVC设计模式,因为您的使用环境不清楚。也许您需要的是一个JTabbedPane()