2013-04-10 99 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); 
      } 
      } 

    }); 
相關問題