Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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_User Interface - Fatal编程技术网

Java 如何使“下一帧”按钮转到下一帧?桂

Java 如何使“下一帧”按钮转到下一帧?桂,java,user-interface,Java,User Interface,如何使“下一步”按钮转到此GUI中的下一帧?我需要将其放在我可以单击“下一步”显示20多个详细信息的位置: import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class FilledFrameViewer { public static void main(String[] args) {

如何使“下一步”按钮转到此GUI中的下一帧?我需要将其放在我可以单击“下一步”显示20多个详细信息的位置:

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class FilledFrameViewer
{
   public static void main(String[] args)
   {
      JFrame frame = new JFrame();

      /*JButton button = new JButton*/
      JButton nextButton = new JButton("NEXT");
      JLabel label = new JLabel("Frame 1.");

      JPanel panel = new JPanel();
      panel.add(nextButton);
      panel.add(label);
      frame.add(panel);

      final int FRAME_WIDTH = 300;
      final int FRAME_HEIGHT = 100;
      frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
      frame.setTitle("A frame with two components");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      frame.setVisible(true);
   }
}

如果要隐藏或显示框架,可以这样使用

JFrame f1=新JFrame(“第1帧”); JFrame f2=新的JFrame(“第2帧”)

要隐藏f1,请调用f1.setVisible(false);
要显示f2,请调用f2.setVisible(true)

有点不清楚。是否要将JButton移动到另一个JFrame?我认为如果没有动态规划之类的东西(我想是吧?),你是无法做到这一点的

您应该浏览Oracle的Swing组件教程

并查看您的评论。我同意拥有多个JFrame是一个坏习惯

编辑

使用eventlistner(请参阅其他答案)并使其遵循开关案例?然后,您可以让它像对话框一样显示,或者在JFrame中更改JLable

对话框教程:。 我认为你应该用一个标签,改变它的文字

JButton nextButton = new JButton("Next");
nextButton.addActionListener(new ActionListner(

private int counter = 0;

public void actionPerformed(ActionEvent e) { 

    counter++;

    switch(counter){

        case 1: somelable.setText("Your text here");

    };

}));

我是徒手写的,但我想类似的东西会有用吗?

你必须在下一帧中编辑代码。。。 下一帧的示例

public class NextFrame
   public static void main(String[] args)
   {
      private static FilledFrameViewer parentFrame; //ADD THIS FOR CONNECTION TO FIRST FRAME

        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    NextFrame frame = new NextFrame(null); //CHANGES MADE HERE
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }

      public NextFrame(FilledFrameViewer f) { //CHANGES MADE HERE
      this.parentFrame = f; //CHANGES MADE HERE
        setTitle("Personal Assistant");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

啊,是的……而且你还必须在“下一步”按钮中添加一些内容

例如:

 btnNext = new JButton();
    btnNext.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            goNext();
            {
                private void goNext(){
                                    NextFrame nextframe= new NextFrame(null);
                                    nextframe.setVisible(true);
            }
            }

    });

嗯,你可以在你的问题中插入一些代码,看看问题出在哪里。我没有太多,这就是为什么我是stuckWait,在问题中插入这个。不在评论中。你有一个问题下面的编辑按钮,使用多个JFrame,好/坏的做法?不,我想要的是,当我单击“下一步”时,它将转到下一个jframe并显示其他人的信息。你不应该有很多jframe!Gilbert Le Blanc已经指出了这一点!是的,但我的问题是使用下一个框架。然后我想你必须定制20个JFrames,每个JFrames都有一个next按钮,添加一个actionlistener,创建一个新的JFrames(行中的下一个)并隐藏当前的JFrames