2013-03-05 2 views
2

이 프로그램에는 2 개의 라디오 버튼이 있습니다. 1 : 원의 경우 2 : 정사각형의 경우.자바 - AWT를 사용하여 라디오 버튼 추가?

이 프로그램은 기본적으로 라디오 버튼 그룹을 기반으로 한 원형 또는 사각형을 출력하도록 설계되었습니다.

제 문제는 버튼에 액션 리스너를 구현하여 모양을 출력하는 방법을 모르겠습니다. fm 메서드를 호출 할 때 라디오 버튼을 초기화하는 동안 오류가 발생합니다. 분명히 나는 ​​주된 방법이 필요하다고 생각한다.

자바 AWT라는 점에 유의하십시오.

자세한 내용을 추가하거나 설명을 원하시면 저에게 말씀해주십시오.

import java.awt.*; 
    import java.awt.event.*; 
    import java.applet.*; 
    import java.applet.Applet; 

    public class RadioButton extends Applet 
implements ActionListener 
    { 
     int choice; 

     Frame fm = new Frame ("RadioButton Group"); 
     Label la = new Label ("What shape do you want to draw?:"); 
     fm.setLayout (new GridLayout (0, 1)); 
     CheckboxGroup cg1 = new CheckboxGroup(); 
     fm.add (la); 

     fm.add (new Checkbox ("CIRCLE", cg1, true)); 
     fm.add (new Checkbox ("SQUARE", cg1, true)); 

     fm.setSize (250, 200); 
     fm.setVisible (true); 
     fm.addWindowListener (new WindowAdapter() 


     { 

      public void paint (Graphics g) // How can you 'update the drawing' or repaint it? 
      { 
       switch (choice) // Maybe for colors if all else fails you can add a switch 'within' a switch. Inefficient-yes but helps. 
       { 
        case 1: 
         if (choice == 1) 
          g.fillOval (30, 40, 20, 20); 

        case 2: 
         if (choice == 2) 
          g.fillRect (20, 40, 20, 20); 
         break; 
       } 
      } 
      public void actionPerformed (ActionEvent evt) 
      { 
       if (evt.getSource() == "CIRCLE") 
        choice = 1; 
       else 
        choice = 2; 
      } 
      public void windowClosing (WindowEvent we) 
      { 
       System.exit (0); 
      } 
     } 


     ); 
    } 
    } 
+0

이 질문에 어떻게 답할 수 있습니까? –

답변

2

항목 리스너를 사용할 수 있습니다. 이것은 완전한 작업 예제입니다 :

import java.awt.*; 
import java.awt.event.ItemEvent; 
import java.awt.event.ItemListener; 


import javax.swing.JFrame; 


public class Project1 extends JFrame implements ItemListener { 

    CheckboxGroup cg1 = new CheckboxGroup();  //create group 
    Checkbox c1 = new Checkbox("Circle",cg1,true); //circle button 
    Checkbox c2 = new Checkbox("Square",cg1,true); //square button 

    public Project1() { 
     setLayout(new FlowLayout());   

     //add listeners 
     c1.addItemListener(this); 
     c2.addItemListener(this); 

     //add to frame 
     add(c1); 
     add(c2); 

     //set visible 
     this.setVisible(true); 
    } 


    @Override 
    public void itemStateChanged(ItemEvent e) 
    { 
     //c1 = circle 
     //c2 = square 
     if(e.getSource() == c1) 
      System.out.println("Circle"); 
     else 
      System.out.println("Square"); 

    } 

    public static void main(String[] args) { 
     Project1 p = new Project1(); 
    } 
} 

.java를 full로 저장하고 실행하십시오. 당신이 원하는 것을 성취 할 수있는 좋은 예를 보여 주어야합니다.

관련 문제