2012-09-01 2 views
1

JToggleButton을 선택하면 다시 그리지 않기를 원합니다. 나는 한 쌍의 단어 ("check/next")에 의한 상태 변화를 가리킨다. 표준 동작은 파란색 조명이지만 사용하지 않도록 설정하려고합니다.선택시 JToggleButton의 표준 다시 그리기를 사용하지 않음

+0

아마도 ImageIcon에 단어를 표시 할 수 있습니다. –

+0

토글 버튼의 ​​'확인'및 '다음'유효한 대체 방법은 무엇입니까? 나는 (다음 사진/거의) '다음/이전', '다음/현재', '체크/건너 뛰기'를 할 수 있었다. –

답변

3

아마도 ImageIcon에 단어를 표시 할 수 있습니다. 예 :

import java.awt.Color; 
import java.awt.Graphics2D; 
import java.awt.image.BufferedImage; 

import javax.swing.BorderFactory; 
import javax.swing.ImageIcon; 
import javax.swing.JOptionPane; 
import javax.swing.JPanel; 
import javax.swing.JToggleButton; 

public class ToggleFun { 
    private static final Color BACKGROUND_COLOR = new Color(200, 200, 255); 

    public static void main(String[] args) { 
     int biWidth = 60; 
     int biHeight = 30; 
     BufferedImage checkImg = new BufferedImage(biWidth, biHeight, BufferedImage.TYPE_INT_RGB); 
     BufferedImage nextImg = new BufferedImage(biWidth, biHeight, BufferedImage.TYPE_INT_RGB); 

     Graphics2D g2 = checkImg.createGraphics(); 
     g2.setColor(BACKGROUND_COLOR); 
     g2.fillRect(0, 0, biWidth, biHeight); 
     g2.setColor(Color.black); 
     g2.drawString("Check", 10, 20); 
     g2.dispose(); 

     g2 = nextImg.createGraphics(); 
     g2.setColor(BACKGROUND_COLOR); 
     g2.fillRect(0, 0, biWidth, biHeight); 
     g2.setColor(Color.black); 
     g2.drawString("Next", 15, 20); 
     g2.dispose(); 

     ImageIcon checkIcon = new ImageIcon(checkImg); 
     ImageIcon nextIcon = new ImageIcon(nextImg); 

     JToggleButton toggleBtn = new JToggleButton(checkIcon); 
     toggleBtn.setSelectedIcon(nextIcon); 
     toggleBtn.setContentAreaFilled(false); 
     toggleBtn.setBorder(BorderFactory.createLineBorder(Color.black)); 

     JPanel panel = new JPanel(); 
     panel.add(toggleBtn); 
     JOptionPane.showMessageDialog(null, panel); 

    } 
} 
+0

좋은 속임수. 내 애플 리케이션의 다른 부분에서 그것을 사용합니다. 그러나 실제로 내가 원한 것이 아닙니다. 토글 버튼을 선택하면 약간 푸른 빛이 켜지고 Windows OS 버튼 스타일을 비활성화하지 않고 비활성화하려고합니다. –

3

참조 : AbstractButton.setContentAreaFilled(false).

하지만 사용자는 일반적으로 '놀람의 경로'를 따르는 GUI 요소를 선호합니다. 이 유형의 렌더링은 해당 경로 옆의 덤불을 통해 약간의 크래쉬 - 쾅 (crash-bang)에서 벗어나는 것으로 더 잘 묘사 될 수 있습니다.

+0

Windows 스타일의 그래픽을 전혀 사용할 수 없게되고 내 단추가 레이블처럼 보이게됩니다. –

관련 문제