2010-06-30 9 views
1

Java + Swing을 기반으로하는 데스크탑 애플리케이션 개발하기 옆에있는 텍스트 대신에 스피너와 같은 다른 위젯을 가지고 있어야하는 라디오 버튼을 만드는 문제에 직면했습니다.리치 스윙 라디오 버튼

이미지 또는 회 전자를 클릭하면 해당 radioButton도 선택해야합니다.

가능합니까? 그렇다면 어떻게?

답변

3

나에게 JRadioButton 아이콘이 생성자에 대해 주어지지 않는다. 그것은 "네이티브 라디오 버튼 아이콘"을 주어진 아이콘으로 대체합니다. 원래는 "라디오 버튼 아이콘"이외에도 아이콘이있는 라디오 버튼이 필요하다고 생각했습니다.

Bug #4177248으로 Sun 버그 데이터베이스에서의 동작에 대해 몇 가지 논란이 있었지만 변경되지 않았습니다.

불필요한 동작이있을 수 있지만 대신 JRadioButtonMenuItem을 시도 할 수 있습니까? JRadioButton의 및 JRadioButtonMenuItem 모두

짧은 평가 : 아마 대부분의 경우에서 잘 작동합니다 빈 문자열을 다음 JRadioButton의 또 다른 구성 요소에 대한

public class IconRadioButtonEval { 
    public static void main(String[] args) throws Exception { 
     JFrame frame = new JFrame(); 
     JPanel panel = new JPanel(); 
     // Use some arbitrary working URL to an icon 
     URL url = 
       new URL(
         "http://mikeo.co.uk/demo/sqlspatial/Images/RSS_Icon.png"); 
     Icon icon = new ImageIcon(url); 
     JRadioButton button = new JRadioButton(icon); 
     panel.add(new JLabel("RadioButton with icon:")); 
     panel.add(button); 
     panel.add(new JLabel("RadioButtonMenuItem with icon:")); 
     panel.add(new JRadioButtonMenuItem(icon)); 

     frame.getContentPane().add(panel); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.pack(); 
     frame.setVisible(true); 
    } 
} 

저스틴의 제안.

+0

) 해결책으로 radioButton에 텍스트와 아이콘을 추가하는 데 도움이 될 것입니다. 그런 식으로 당신의 표현에 대해 묻고 싶습니다. " ? "_ 어떤 종류의 원치 않는 행동 _ 감사 (+1) – Adil

2

글쎄, JRadioButton에 대한 생성자는 Icon입니다. 이 아이콘을 사용하여 옆에 아이콘이 표시되도록 할 수 있습니다.

JRadioButton(Icon icon)

은 - 이미지의 지정있어 텍스트의 지정 없음 초기 상태에서는 선택 해제되고있는 라디오 버튼을 작성합니다.

그렇지 않은 경우 JRadioButton 텍스트를 비워두고 다른 구성 요소를 옆에 배치하는 것이 매우 쉽습니다. 그런 다음 다른 구성 요소가 클릭되면 JRadioButton이 클릭되도록 해당 구성 요소에 리스너를 추가해야합니다.

+0

해당 생성자를 사용해 보셨습니까? 옆에 아이콘을 추가하는 대신 원본 라디오 버튼 이미지를 대체하는 것으로 보입니다 (다른 답변의 평가 참조) (-1). 다른 구성 요소를 사용하는 접근 방식은 아마도 +1 ( – Touko