2015-09-07 3 views
0

Я создал кнопку, которая находится на главной странице, которая, когда пользователь нажимает на нее, изменяет панал (основная идея заключается в том, что он меняет фон и все что на панели и добавляет новые вещи к нему), однако я не смог !, я также не смог настроить расположение кнопки, хотя я попробовал button.setBounse (..) так или иначе может кто-нибудь помочь мне в этих двух вещах?кнопка, которая переходит на новую панель

public class mainClass { 
private static JButton start; 
static BackgroundPanel bp = null; 
static JFrame mainf = null; 
public static void main(String[] args) throws IOException { 
    mainf = new JFrame ("سين جيم"); 


    // background 

    BufferedImage mFrame = ImageIO.read(new File("B1.png")); 
    bp = new BackgroundPanel(mFrame); 
    mainf.add(bp); 
    bp.setLayout(new GridBagLayout()); 

    // Hi string 
    JLabel hi = new JLabel ("أهلا وسهلا"); 
    Font fs = hi.getFont(); 
    hi.setFont(fs.deriveFont(50f)); 
    bp.add(hi); 

    // button 
    JPanel another = new JPanel(); 
    start = new JButton (" لنبدأ"); 
    bp.add(start); 
    start.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
       bp.removeAll(); 
       BufferedImage mFrame2= null; 
      try { 
       mFrame2 = ImageIO.read(new File("B2.png")); 
      } catch (IOException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 
       bp = new BackgroundPanel(mFrame2); 
       bp.setLayout(new GridBagLayout()); 

       JLabel hi1= new JLabel ("worked"); 
       bp.add(hi1); 


      } 
     }); 


    // end of frame 
    mainf.pack(); 
    mainf.setVisible(true); 
} 

}

+3

Взгляните на [используя 'CardLayout'] (https://docs.oracle.com/javase/tutorial/uiswing/layout/ card.html). – RealSkeptic

+0

@Julian L., который установил do u? немного потерянный, я создал новый фрейм, поскольку у меня закончилась идея, попробовал удалить и повторно установить их и не работал. Могу ли я показать, какой метод набора точно использовать? – Neyon

+0

Обратите внимание, что комментарии здесь * вопрос * комментарии. Если вы хотите прокомментировать ответ, есть ссылка «добавить комментарий» ** под ответ **. – RealSkeptic

ответ

0

Ну, чтобы изменить вашу основную панель, которую Вы не должны создать новый объект кадра и установить его главная панель. Например, вы можете написать сеттер для bp и вызвать этот метод в методе прослушивателя действий. Если ваша панель имеет другой размер, вы можете легко изменить размер рамки ...

+0

который установленный u означает? немного потерянный, я создал новый фрейм, поскольку у меня закончилась идея, попробовал удалить и повторно установить их и не работал. Могу ли я показать, какой метод набора точно использовать? – Neyon

+0

, пожалуйста, проверьте код выше, все еще не работает! – Neyon

+0

Прочитайте литературу о программировании GUI Swing. Чтобы установить корневую панель, которая должна быть основным содержимым вашего фрейма, вызовите 'mainf.setContentPane (yourActualPanel);'. –