2016-08-24 2 views
0

텍스트로 JFrame을 설정하려고했지만 문제가 있습니다. JFrame을 만들 수는 있지만 배경색이나 텍스트를 사용할 수 없습니다.JFrame을 만들고 텍스트를 추가하는 데 문제가 있습니다.

import java.awt.Color; 

import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 

class FundManager { 

    JFrame window; 
    JPanel panel; 
    JLabel text; 

    public void createWindow() 
    { 

     //Create the window 
     window = new JFrame(); 
     window.setVisible(true); 
     window.setSize(960, 540); 
     window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     window.setLocationRelativeTo(null); 

     //Create the panel 
     panel = new JPanel(); 
     panel.setBackground(Color.RED); 

     //Create the label 
     text = new JLabel("test"); 

    } 

    public static void main(String args[]) { 

     FundManager.createWindow(); 

    } 

} 

createWindow() 방법은 실행되지 않고, 나는 오류를 얻을 :

cannot make a static reference to to the non-static method.

을하지만, 나는 그것이 전체 프로그램 나누기를 정적으로 할 때.

답변

2

여기에서 문제는 createWindow() 메서드를 호출하기 전에 FundManager 인스턴스가 필요하다는 것입니다. 아래 코드를 대신 사용해보십시오.

new FundManager().createWindow(); 
2

우선 createWindow()가 정적 메서드가 아니기 때문에 FundManager.createWindow()를 호출 할 수 없습니다. FundManager의 인스턴스가 필요합니다.

또한 패널에 텍스트 필드를 추가하지 않습니다. 당신은 단지 그들을 선언하고 있습니다.

JFrame window; 
JPanel panel; 
JLabel text; 

public void createWindow() { 

    // Create the window 
    window = new JFrame(); 
    window.setVisible(true); 
    window.setSize(960, 540); 
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    window.setLocationRelativeTo(null); 

    // Create the panel 
    panel = new JPanel(); 
    panel.setPreferredSize(new Dimension(500, 500)); 
    panel.setBackground(Color.RED); 

    // Create the label 
    text = new JLabel("test"); 
    text.setPreferredSize(new Dimension(200, 30)); 
    text.setLocation(100, 100); 
    panel.add(text); 

    window.getContentPane().add(panel); 
    window.pack(); 

} 

그리고 이것을 실행 :

new FundManager().createWindow(); 
이것은 당신이 프레임 내부의 요소를 찾을 수있는 방법에 대한 간단한 예입니다
관련 문제