2015-02-08 5 views
0

Итак, я пытаюсь добавить JButton из другого класса в свой основной класс, но я понятия не имею, как это сделать. Должен ли я использовать определенную команду или импортировать пакет, чтобы добавить кнопку?Как добавить Jbutton из другого класса в основной класс

//my first class with JButton 
public class ScreenInitial 
{ 
    public ScreenInitial() 
    { 
    JPanel panel = new JPanel(); 
    panel.setLayout(new GridLayout(0, 1)); 
    JButton newArrival = new JButton("New Arrival"); 
    panel.add(newArrival); 
    } 
} 



//my main class 
public class FurryFriendsAnimalShelter extends JFrame 
{ 
    public static void main(String[] args) 
    { 
    JFrame window = new JFrame("FFAS"); 
    Toolkit tk = Toolkit.getDefaultToolkit(); 
    int widthScreen = ((int)tk.getScreenSize().getWidth()); 
    int lengthScreen = ((int) tk.getScreenSize().getWidth()); 
    window.setSize(widthScreen,lengthScreen); 
    window.getContentPane().setBackground(Color.BLACK); 
    window.show(true); 
    } 
} 

ответ

0

Самый простой способ заключается в расширить некоторые JComponent типа и пусть все полагаются на этот класс.

public class NewClass { 

    public static void main(String[] args) { 
     JFrame window = new JFrame("Furry Friends Animal Shelter"); 
     Toolkit tk = Toolkit.getDefaultToolkit(); 
     int widthScreen = ((int) tk.getScreenSize().getWidth()); 
     int lengthScreen = ((int) tk.getScreenSize().getWidth()); 
     window.setSize(widthScreen, lengthScreen); 
     window.getContentPane().setBackground(Color.BLACK); 
     window.add(new ScreenInitial()); 
     window.show(true); 
    } 

    public static class ScreenInitial extends JPanel { 

     public ScreenInitial() { 
      setLayout(new GridLayout(0, 1)); 
      JButton newArrival = new JButton("New Arrival"); 
      add(newArrival); 
     } 
    } 
} 
+0

Использование JFrame # setExtendedState и передать его MAXIMISED_BOTH вместо Toolkit.getScreenSize, как он будет принимать во внимание такие вещи, как панели задач/док. Используйте setVisible вместо show, show's устарели ... годами. Вы также должны начать свой пользовательский интерфейс в контексте EDT – MadProgrammer

+0

@MadProgrammer спасибо за совет! Я заметил проблему с размером окна. Хотя, что вы подразумеваете под EDT? –

+0

Событие Dispatching Thread - см. [Начальные темы] (http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html) – MadProgrammer

Смежные вопросы