2011-07-05 3 views

답변

7
import java.awt.*; 
import javax.swing.*; 
import javax.swing.border.*; 
import java.awt.event.*; 
public class Test extends JFrame implements ActionListener 
{ 
    private JLabel label; 
    private JTextField field; 
    public Test() 
    { 
     super("The title"); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     setPreferredSize(new Dimension(400, 90)); 
     ((JPanel) getContentPane()).setBorder(new EmptyBorder(13, 13, 13, 13)); 
     setLayout(new FlowLayout()); 
     JButton btn = new JButton("Change"); 
     btn.setActionCommand("myButton"); 
     btn.addActionListener(this); 
     label = new JLabel("flag"); 
     field = new JTextField(5); 
     add(field); 
     add(btn); 
     add(label); 
     pack(); 
     setLocationRelativeTo(null); 
     setVisible(true); 
     setResizable(false); 
    } 
    public void actionPerformed(ActionEvent e) 
    { 
     if(e.getActionCommand().equals("myButton")) 
     { 
      label.setText(field.getText()); 
     } 
    } 
    public static void main(String[] args) 
    { 
     new Test(); 
    } 
} 
+0

다른 클래스에서'Test'의 객체를'Test t = new Test(); t.getLabel(). setText ("라벨 텍스트 변경");'. 레이블 (getLabel())에 getters-setters를 만들었습니까? –

+1

실용적인 작품! 내가 10 회 upvote 수 있으면 좋겠다. –

6

표시되는 텍스트를 동적으로 변경하려면 JLabelsetText(str) 방법을 사용하십시오. 버튼의 actionPerform에서이 쓰기 :

jLabel.setText("new Value"); 

간단한 데모 코드는 다음과 같습니다 편리 다시

JFrame frame = new JFrame("Demo"); 
    frame.setLayout(new BorderLayout()); 
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
    frame.setSize(250,100); 

    final JLabel label = new JLabel("flag"); 
    JButton button = new JButton("Change flag"); 
    button.addActionListener(new ActionListener() { 
     @Override 
     public void actionPerformed(ActionEvent arg0) { 
      label.setText("new value"); 
     } 
    }); 

    frame.add(label, BorderLayout.NORTH); 
    frame.add(button, BorderLayout.CENTER); 
    frame.setVisible(true); 
관련 문제