2011-03-13 75 views
0

我不知道如何初始化JFrame窗口。我需要写入init im?需要初始化JFrame

我已经在主这创造:

Panel Panel=new Panel(); 

Panel.init(); 

JFrame frame = new JFrame("Shape Project"); 
frame.add(Panel); 
frame.setResizable(false); 
frame.setSize(new Dimension(1200, 650)); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setVisible(true); 

,并在JPanel类我有写:

public class Panel extends JFrame 
{ 
    public void init() 
    { 
    } 
} 

但是,当我主动它的框架并不活跃。我需要在init func上编写窗口才能打开?

+1

你是什么意思,由初始化框架?另外,为什么你要为变量和类使用相同的名称('Panel Panel = new Panel()')? – MByD 2011-03-13 16:51:06

+0

我想设计那里的窗口,所以我初始化该类的框架,称为面板 – user650679 2011-03-13 17:15:23

回答

1

你已经有一个JFrame(框架)。所以现在你应该为你的面板添加组件(你也可以在主类中添加它)。这些组件是JTextField,JButton等(甚至是另一个JPanel),您可以使用panel.add(component_name);将每个组件添加到面板中,因此建议您按照教程Erkan提到。

+0

,但如果我想从面板类中添加它们,我该怎么做? – user650679 2011-03-13 17:29:31

+0

当你在面板类中时,你可以创建每个元素,并添加它,因为我写下面,而不是写'panel.add(component)'只使用'add(component)'或'this.add(component )'[因为你已经在对象中]例如: 'public void init(){ JButton new_button = new JButton(“Press”); this.add(new_button); JTextArea new_text_area = new JTextArea(“Text”); add(new_text_area); }' – MByD 2011-03-13 21:04:02

1

您的panel类应扩展为JPanel,而不是JFrame。 您可以添加到JPanelJButton, JList, etc

这是你需要初始化一个JFrame,如果你没有创建自己的类的实例代码组件:

public class LogMain 
{ 
    public static void main(String[] args) 
    { 
     JFrame window = new JFrame("Log"); 
     window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     window.setSize(300,300); 
     window.setResizable(false); 
     JPanel panel = new JPanel(); 
     JButton openFile = new JButton("Btn1"); 
     JButton openDir = new JButton("Btn2"); 
     panel.add(openFile); 
     panel.add(openDir); 
     window.add(panel); 
     window.setLocationRelativeTo(null); 
     window.setVisible(true); 

    } 
} 
1

这是我对JFrame的初始化实例:

public class Windows{ 

    public static void main(String args[]){ 

    SJFrame window = new SJFrame("NEWNEWNEW"); 
    window.init(); 

    } 
} 


public class SJFrame extends JFrame(){ 

    public SJFrame(String s){ 

    super(s); 
    } 
    void init(){ 

    Container panel = this.getContentPane(); 

    panel.setBackground(Color.green); 
    panel.setLayout(new GridLayout(5,1)); 
    JLabel jl1 = new JLabel("UserName"); 
    JLabel jl2 = new JLabel("PassWord"); 

    this.add(jl1); 
    this.add(jl2); 
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ; 
    this.setSize(300,100); 
    this.pack(); 
    this.setVisible(true); 
} 
}