2015-02-10 1 views
1

Я создал класс с именем кадр, который просто создает кадр:Как добавить JPanel к раме, созданной

package panels; 

public class Frame extends prog 
{ 

    public Frame() { 


     JFrame myFrame = new JFrame(); 

     myFrame.setLayout(new FlowLayout()); 

     myFrame.setTitle("GUI Demo - ISTE-121"); 
     myFrame.pack(); 
     myFrame.setLocation(600,300); 
     myFrame.setSize(400,200); 
     myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     myFrame.setVisible(true); 



    } 

} 

Затем я добавил, что кадр в main():

package panels; 

public class prog { 

    public static void main(String args[]) { 
     Frame first = new Frame(); 
    } 
} 

Я создал класс с именем panel и хочу добавить его в класс Frame. Как мне это сделать?

Подкласс выглядит следующим образом:

public class panels extends Frame { 

     final JTextField items; 
     final JTextField number; 
     final JTextField cost; 
     final JTextField amount; 


    public panels() 
    { 


     JPanel order = new JPanel(); 
      order.setLayout(new GridLayout(5,5,2,2)); 


      order.add(new JLabel("Item no:", SwingConstants.RIGHT)); 
      order.add(items = new JTextField(3)); 

      order.add(new JLabel("Number of:", SwingConstants.RIGHT)); 
      order.add(number = new JTextField(3)); 

      order.add(new JLabel("Cost", SwingConstants.RIGHT)); 
      order.add(cost = new JTextField(3)); 

      order.add(new JLabel("Amount owed:", SwingConstants.RIGHT)); 
      order.add(amount = new JTextField(10)); 
      amount.setEditable(false); 

    } 
} 
+1

Почему этот класс расширяет 'Frame'? Что вы хотите добавить к чему. То есть, что вы хотите, точно? – RealSkeptic

ответ

1

Изменить имя первого класса. Этот класс должен расширять JFrame, класс панелей должен расширять JPanel. Вы должны узнать о менеджерах макетов, добавив панель в контейнер. Это основы Swing. Это улучшенный код вашей программы:

class MyFrame extends JFrame { 
    public MyFrame() { 

     JFrame myFrame = new JFrame(); 

     myFrame.setLayout(new FlowLayout()); 

     myFrame.add(new panels()); 
     myFrame.setTitle("GUI Demo - ISTE-121"); 
     myFrame.pack(); 
     myFrame.setLocation(600,300); 
     myFrame.setSize(400,200); 
     myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     myFrame.setVisible(true); 

    } 
} 

class panels extends JPanel { 

    final JTextField items; 
    final JTextField number; 
    final JTextField cost; 
    final JTextField amount; 


    public panels() { 
     setLayout(new GridLayout(5,5,2,2)); 

     add(new JLabel("Item no:", SwingConstants.RIGHT)); 
     add(items = new JTextField(3)); 

     add(new JLabel("Number of:", SwingConstants.RIGHT)); 
     add(number = new JTextField(3)); 

     add(new JLabel("Cost", SwingConstants.RIGHT)); 
     add(cost = new JTextField(3)); 

     add(new JLabel("Amount owed:", SwingConstants.RIGHT)); 
     add(amount = new JTextField(10)); 
     amount.setEditable(false); 

    } 
} 

public class FrameTest { 

    public static void main(String args[]) { 
     MyFrame first = new MyFrame(); 
    } 
} 
Смежные вопросы