2013-10-17 2 views
2

나는 그물 전체를 이미 검색하고 JTextPane의 기본 배경색을 설정하려고 시도했지만 몇 가지 시도를했지만 여전히 기본 흰색을 표시합니다.JTextPane의 기본 배경색을 설정하는 방법

콘솔 출력을 시뮬레이트하려고하는데 텍스트가없는 경우에도 의 전체 배경을 검정색으로 표시해야합니다.

setCharacterAttributes()setParagraphAttributes()은 텍스트 만 처리하지만 나머지 배경은 여전히 ​​기본 흰색입니다.

배경색 설정과 관련된 버그를 보았습니다.

어떻게하면됩니까?

HTML이 아닌 일반 텍스트입니다.

감사합니다.

업데이트 :

마침내 나는 뭔가를 발견했습니다.

setBackground (Color.BLACK)를 사용하면 삽입 된 텍스트 아래에만 배경이 설정되고 나머지 WindowsTextPane 배경은 기본 Windows 시스템 인 입니다.

나는 UIDefault를 바꾸기 시작했다.

UIDefaults defs = UIManager.getDefaults(); 
defs.put("TextPane.background", new ColorUIResource(Color.BLACK)); 
defs.put("TextPane.inactiveBackground", new ColorUIResource(Color.BLACK)); 

을 그리고 시작할 때, 텍스트가없는 전체 JTextPane가 내가 그것을 및 삽입 된 텍스트 내가 할 그것을 필요로하는 방식입니다 원하는 방식으로는 이제 검은 색 : 는 여기에 내가 무엇을 사용합니다.

다른 모든 것은 JTextPane의 나머지 부분을 흰색으로 남겨두고 개의 "솔루션"이 많이 있습니다.

답장을 보내 주셔서 감사합니다.

+2

Windows 7에서 JDK4/5/6/7을 사용하는 데 전혀 문제가 없었습니다. 문제를 나타내는 SSCCE를 게시하십시오. – camickr

+0

setBackground를 사용해 보셨습니까? – MadProgrammer

답변

4

이 SSCCE를 시도하십시오. JTextPane에 배경색을 설정하는 방법을 보여줍니다.

import java.awt.Component; 
import java.awt.Container; 
import java.awt.Color; 
import javax.swing.JFrame; 
import javax.swing.JTextPane; 
import javax.swing.SwingUtilities; 
import javax.swing.WindowConstants; 

/** 
* http://stackoverflow.com/questions/19435181/how-to-set-default-background-color-for-jtextpane 
*/ 
public class Q19435181 { 
    public static void main(String... args) { 
    SwingUtilities.invokeLater(new Runnable() { 
     @Override 
     public void run() { 
     JFrame frame = new JFrame("Example setting background color on JTextPane"); 
     frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
     Container pane = frame.getContentPane(); 
     pane.add(blackJTextPane()); 
     frame.setSize(800, 600); 
     frame.setVisible(true); 
     } 

     private Component blackJTextPane() { 
     JTextPane pane = new JTextPane(); 
     pane.setBackground(Color.BLACK); 
     pane.setForeground(Color.WHITE); 
     pane.setText("Here is example text"); 
     return pane; 
     } 
    }); 
    } 
} 
관련 문제