2013-04-10 3 views
-2

Как сделать следующую кнопку для перехода к следующему кадру в этом графическом интерфейсе? Мне нужно, чтобы там, где я могу нажать рядом, чтобы отобразить больше 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

+0

Я havnt много thats почему im stuck – WB4991

+0

, импорт javax.swing.JButton; импорт javax.swing.JFrame; импорт javax.swing.JLabel; импорт javax.swing.JPanel; общественного класса FilledFrameViewer { государственной статической силы основных (String [] арг) { фрейму рамы = новый JFrame(); /* JButton button = новый JButton */ JButton nextButton = новый JButton ("NEXT"); JLabel label = новый JLabel («Рамка 1.»); Панель JPanel = новый JPanel(); panel.add (nextButton); panel.add (ярлык); рама.Добавить (панель); – WB4991

ответ

0

Если вы хотите, чтобы скрыть или показать кадр, вы можете использовать как этот

JFrame f1 = новый JFrame ("Рамка 1"); JFrame f2 = новый 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 (см другой ответ) и сделать его следовать случай переключателя? Затем вы можете сделать это как диалог или изменить JLable внутри вашего JFrame?

Диалог учебник здесь: 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

+0

, у вас не должно быть много jframes! Гилберт Ле Блан уже указывает, что [здесь] (http://stackoverflow.com/a/9554657/300257)! – Lurvas777

+0

Да, но это вопрос, который у меня есть, - использовать следующий кадр. – WB4991

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

    }); 
Смежные вопросы