Java 프로그래밍에 익숙하지 않습니다. 클래스 내부에 JButton
을 만들고 버튼 인수를 전달하여 기본으로 ActionListener
을 생성하고 싶습니다. 하지만 오류가 발생합니다 :클래스의 JButton과 기본 액션 목록입니다.
Cannot make a static reference to the non-static field newBtn
내 코드는 다음과 같습니다.
import java.awt.event.*;
import javax.swing.*;
public class TestBtn {
TestBtn() {
}
public void myBtn(JButton mybtn){
JFrame f=new JFrame("My Example");
mybtn =new JButton("Click Here");
mybtn.setBounds(50,100,95,30);
f.add(mybtn);
f.setSize(400,400);
f.setLayout(null);
f.setVisible(true);
}
}
// 내 주요 프로그램 당신은 어떤 객체를 사용하지 않고 변수 newBtn
을 사용하는
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class TestBtnMain {
JButton newBtn;
public static void main(String[] args) {
TestBtn btn = new TestBtn();
btn.myBtn(newBtn);
newBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.out.println("Success");
}
});
}
}
그냥 그렇게하지 마세요 ... 아주 나쁜 프로그래밍 스타일. 'public class TestBtnMain { JButton newBtn; 'public 클래스 여야합니다. TestBtnMain { static JButton newBtn; ' – XtremeBaumer
* "클래스 안에'JButton'을 만들고 버튼 인수를 전달하여 메인에'ActionListener'를 만들고 싶습니다."* 왜? [XY 문제 란 무엇입니까?] (http://meta.stackexchange.com/q/66377) * "Java 프로그래밍에 익숙하지 않습니다."* 잠시 동안 GUI 프로그래밍을 피해야합니다. 고급 주제입니다. GUI 프로그래밍으로 되돌아 가면,'f.setLayout (null);'이것은 ** 절대 **해야하는 것들 중 하나입니다. Java GUI는 다른 로케일에서 다른 PLAF를 사용하여 다른 OS, 화면 크기, 화면 해상도 등에서 작동해야합니다. 따라서, 그들은 .. –
.. 픽셀 완벽한 레이아웃에 도움이되지 않습니다. 대신 레이아웃 관리자 또는 [조합] (http://stackoverflow.com/a/5630271/418556)과 [공백] 레이아웃 채우기 및 테두리 (http://stackoverflow.com/a/17874718/)를 사용하십시오. 418556). –