2017-11-02 5 views
0

이 프로그램을 실행하면 기본적으로 비활성 출력이 표시되고 활성화 버튼을 클릭하면 아무 것도 표시되지 않습니다. 이 문제를 해결하도록 도와주세요.라디오 버튼을 클릭하면 원하는 출력이 표시되지 않습니까?

이 응용 프로그램처럼 작동하는 응용 프로그램을 개발하고 싶습니다. 이것은 데모 애플리케이션이지만이 문제를 해결할 수 없습니다.

데모 응용 프로그램 :

import javax.swing.JRadioButton; 
    import javax.swing.ButtonGroup; 
    import java.awt.event.*; 
    import javax.swing.JFrame; 
    import javax.swing.JPanel; 
    import java.awt.FlowLayout; 
    import java.awt.BorderLayout; 
    import java.awt.Color; 
    import java.awt.Cursor; 
    public class GraphicRadioButton extends JFrame{ 

     public static JRadioButton active ,deactive; 
     private ButtonGroup rdoBtn; 
     private JFrame frame; 
     private JPanel panel; 
     public GraphicRadioButton() 
     { 
      super("Testing"); 
      active = new JRadioButton("Active"); 
      deactive = new JRadioButton("Deactive ", true); 
      frame = new JFrame(); 
      this.setLocationRelativeTo(null); 

      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

      panel = new JPanel(); 
      panel.setLayout(new FlowLayout()); 
      rdoBtn = new ButtonGroup(); 
      rdoBtn.add(active); 
      rdoBtn.add(deactive); 

      panel.add(active); 
      panel.add(deactive); 
      this.add(panel,BorderLayout.CENTER); 
      this.setResizable(false); 
      Cursor c = new Cursor(Cursor.HAND_CURSOR); 
      this.setCursor(c); 
      pack(); 
     } 
    } 



    import javax.swing.*; 
    public class Main { 

     public static void main(String ar[]){ 
      GraphicRadioButton g = new GraphicRadioButton(); 
      g.setVisible(true); 
      boolean test = true; 
      boolean ch = true; 

      do{ 
       if(GraphicRadioButton.active.isSelected()&&!test){ 

         System.out.println("active"); 
         test = true; 
         ch = true; 
        } 

       if(GraphicRadioButton.deactive.isSelected() &&ch){ 

         System.out.println("deactive"); 
         test = false; 
         ch = false; 
        } 

      }while(true); 

     }//end main method 
    }//end Main class 
+2

안녕하세요, (주 수업 시간에 단 하나의 변화가 실행되는 모든) 클래스를 테스트하고 잘 작동, 문제는 무엇인가? 아마이 목적을 위해 리스너를 사용해야합니다. – LMiranda

+1

어느 jdk를 사용하고 있습니까?하지만 여전히 수정하지 않았습니다 .i 테스트! 테스트를했지만 문제는 동일합니다. 활성 radioButton을 클릭하면 활성 상태로 인쇄되고 비활성 버튼을 클릭하면 응용 프로그램을 종료하지 않을 때까지 인쇄가 비활성화되어야합니다. – Pradeep

+0

Java 8을 사용하고 있습니다. 답변으로 사용 된 코드를 게시했습니다. – LMiranda

답변

0

변경이 라인은

if (GraphicRadioButton.active.isSelected() && !test) { 

if (GraphicRadioButton.active.isSelected() && test) { 

에 당신은 test!test을 변경해야합니다.

+0

@ Zabuza 동일한 답변을 주셨습니다. –

+1

품질을 향상시키기 위해 ** 귀하의 답변 **을 수정했습니다. 나는 그것을 납치하지 않았다. 그것의 당신의 것 및 그 해답에 해당하는 모든 평판도 당신에게 속합니다. – Zabuza

+1

@ Zabuza 알아요 ... 나는이 책에 익숙하지 않습니다. 여기에서 적절한 편집을하지 못하기 때문에 일반 텍스트로 답변했습니다 ... ur 도움에 감사드립니다. –

0

나는 다음과 같은 코드를 테스트하고 그것을 잘 작동합니다 :

package ljm.aplication; 

import java.awt.BorderLayout; 
import java.awt.Cursor; 
import java.awt.FlowLayout; 

import javax.swing.ButtonGroup; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JRadioButton; 

public class GraphicRadioButton extends JFrame { 

    public static void main(String ar[]) { 
     GraphicRadioButton g = new GraphicRadioButton(); 
     g.setVisible(true); 
     boolean test = true; 
     boolean ch = true; 

     do { 
      if (GraphicRadioButton.active.isSelected() && !test) { 

       System.out.println("active"); 
       test = true; 
       ch = true; 
      } 

      if (GraphicRadioButton.deactive.isSelected() && ch) { 

       System.out.println("deactive"); 
       test = false; 
       ch = false; 
      } 

     } 
     while (true); 

    }// end main method 

    private static final long serialVersionUID = -3366748875509458022L; 
    public static JRadioButton active, deactive; 
    private ButtonGroup rdoBtn; 
    private JFrame frame; 
    private JPanel panel; 

    public GraphicRadioButton() { 
     super("Testing"); 
     active = new JRadioButton("Active"); 
     deactive = new JRadioButton("Deactive ", true); 
     frame = new JFrame(); 
     this.setLocationRelativeTo(null); 

     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     panel = new JPanel(); 
     panel.setLayout(new FlowLayout()); 
     rdoBtn = new ButtonGroup(); 
     rdoBtn.add(active); 
     rdoBtn.add(deactive); 

     panel.add(active); 
     panel.add(deactive); 
     this.add(panel, BorderLayout.CENTER); 
     this.setResizable(false); 
     Cursor c = new Cursor(Cursor.HAND_CURSOR); 
     this.setCursor(c); 
     pack(); 
    } 
}