2013-04-10 103 views
-2

如何让下一个按钮转到此GUI中的下一个框架?我需要它,我可以点击旁边的显示20个的详细信息:如何让下一个按钮转到下一帧? GUI

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); 
    } 
} 
+2

嗯,你可以在你的问题,看看是什么问题插入一些代码。 – miller 2013-04-10 09:24:30

+0

我很喜欢这个为什么im卡住 – WB4991 2013-04-10 09:26:47

+0

,import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel;公共类FilledFrameViewer { public static void main(String [] args) { JFrame frame = new JFrame(); (JButton)/ JButton nextButton = new JButton(“NEXT”); JLabel label = new JLabel(“Frame 1.”); JPanel panel = new JPanel(); panel.add(nextButton); panel.add(label); 框架。添加(面板); – WB4991 2013-04-10 09:27:11

回答

0

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

的JFrame F1 =新的JFrame(“框架1" ); JFrame f2 = new JFrame(“Frame 2”);

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

0

有点不清楚。你想将JButton移动到另一个JFrame?如果没有动态编程或者其他的(我猜?),我认为你不能管理它。

你应该看看通过Swing组件的教程从Oracle http://docs.oracle.com/javase/tutorial/uiswing/

,看看你的意见。我同意有多个JFrame是一个坏习惯。

编辑

使用eventlistner(见其他答案),并使其遵循一个开关的情况下?那么您可以使其显示为一个对话框或在您的JFrame中更改一个JLable?对话教程在这里:http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html。 我认为你应该用标签去改变它的文本。

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"); 

    }; 

})); 

我写了这个自由的手,但我想这样的事情会的工作?

+0

没有什么我想要的是,当我点击下一步它将去下一个jframe和显示在另一个人的信息 – WB4991 2013-04-10 09:43:55

+0

你不应该有许多jframes!吉尔伯特勒布朗克已经指出[这里](http://stackoverflow.com/a/9554657/300257)! – Lurvas777 2013-04-10 09:49:01

+0

是的,但我的问题是使用下一帧。 – WB4991 2013-04-10 09:50:41

0

您的下一帧编辑代码... 实例为您NextFrame,

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); 
1

嗯,是的......而且你必须添加一些东西,在下一步按钮...

例子:

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

    }); 
相关问题