내가하는 JButton가 B와 I라는이 말 :JButton이 자동으로 업데이트 되나요?
b.setText(""+someIntVariable)
을 그리고 적절한 JFrame의에 add()
. 나중에 내 프로그램이 someIntVariable
값을 변경하면 JButton의 텍스트가 내 GUI에서 자동으로 업데이트됩니까? 또는 그것을 업데이트하기 위해 뭔가를해야합니까?
내가하는 JButton가 B와 I라는이 말 :JButton이 자동으로 업데이트 되나요?
b.setText(""+someIntVariable)
을 그리고 적절한 JFrame의에 add()
. 나중에 내 프로그램이 someIntVariable
값을 변경하면 JButton의 텍스트가 내 GUI에서 자동으로 업데이트됩니까? 또는 그것을 업데이트하기 위해 뭔가를해야합니까?
단추가 JFrame에 추가되면 매개 변수로 지정한 원래 텍스트가 표시됩니다. 텍스트를 변경하려면 b.setText(""+someIntVariable)
에 다시 전화해야합니다. 그러나, 당신은 add
JFrame에 그것을하지 않아도됩니다.
값이이고 변수 자체가 아니기 때문에 someIntVariable
에 저장되어 있기 때문입니다. 따라서 값이 변경되면 자동으로 업데이트되지 않습니다.
JButton의 텍스트가 자동으로 업데이트되지 않습니다. ""+someIntVariable
으로 만든 문자열 표현을 가져옵니다. 비록 당신이 int 변수 자체를 넘겼다 고해도 (가능하지 않지만, 그것이 있다고 가정 해 봅시다), 원래 값이 아닌 정수의 사본이됩니다. 이제 원본에 변경 사항이 있음을 알기 위해 정수에 대한 포인터를 얻는 방법이 있습니다. 심지어 방법이 있더라도 정수는 변경된 것으로 JButton
에 알릴 방법이 없습니다.
이와 같은 버튼을 만드는 방법이있을 수 있습니다. 나는 JButton
을 사용하는 것이 그러한 방법 중 하나라고 생각하지 않지만, 이와 같은 것을 처리 할 수있는 다른 프레임 워크의 버튼 클래스가있을 수 있습니다. 그러나 당신은 당신이 전달 된 변수로 더 복잡한 데이터 유형을 사용해야 할 것
당신은이 같은 버튼의 레이블을 변경할 수 있습니다.
그것은보다 시도하는 데 시간이 덜 걸렸을 것import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class demoframe extends JFrame implements ActionListener {
String label=new String("Init Label");
JButton b1=new JButton(label);
JButton b2=new JButton("Action");
demoframe()
{
this.add(b1);
this.add(b2);
b2.addActionListener(this);
}
public static void main(String arg[])
{
demoframe d=new demoframe();
d.setSize(200, 200);
d.setVisible(true);
d.setLayout(new FlowLayout());
}
public void actionPerformed(ActionEvent e)
{
label="New Label";
b1.setText(label);
}
}
[초기 스레드] (http://download.oracle.com/javase/tutorial/uiswing/concurrency/initial.html)도 참조하십시오. – trashgod
여기에 물어보십시오. –