따라서 JTextPane
객체는 런타임 중에 특정 이미지의 배경으로 변경해야합니다. 내가 무엇을 가지고 꽤 버그 (JComboBox
배경을 변경하는 데 사용하고 repaintBackground()
호출은 선택에 autoclose 보이지 않습니다), 그것도 nullpointer을 throw하고 아무 이유도 배경 변경으로 가지고 있습니다. 어떤 도움을 주시면 감사하겠습니다런타임 중에 JTextPane의 백그라운드를 변경하려고 시도했지만 성공했지만 오류가 발생했습니다.
public class PreviewPane extends JTextPane {
private String _name = "bg3";
public PreviewPane() {
super();
setOpaque(false);
StyledDocument document = this.getStyledDocument();
SimpleAttributeSet center = new SimpleAttributeSet();
StyleConstants.setAlignment(center, StyleConstants.ALIGN_CENTER);
document.setParagraphAttributes(0, document.getLength(), center, false);
}
@Override
protected void paintComponent(Graphics g) throws RuntimeException{
g.setColor(Color.WHITE);
g.fillRect(0, 0, getWidth(), getHeight());
BufferedImage img = null;
try {
img = ImageIO.read(new File(getClass().getResource("/icons/"+_name+".png").toURI()));
} catch (IOException | URISyntaxException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
}
g.drawImage(img, 0, 0, this);
super.paintComponent(g);
}
public void repaintBackground(String bgName){
_name = bgName;
paintComponent(this.getGraphics());
}
}
:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.text.BoxView.paint(Unknown Source)
at javax.swing.plaf.basic.BasicTextUI$RootView.paint(Unknown Source)
at javax.swing.plaf.basic.BasicTextUI.paintSafely(Unknown Source)
at javax.swing.plaf.basic.BasicTextUI.paint(Unknown Source)
at javax.swing.plaf.synth.SynthEditorPaneUI.paint(Unknown Source)
at javax.swing.plaf.synth.SynthEditorPaneUI.update(Unknown Source)
at javax.swing.JComponent.paintComponent(Unknown Source)
etc etc etc....
이
내 개체입니다.
이 RuntimeException을 던졌습니다 { .. IMG = ImageIO.read ('워 페인트 방법! 1) 런타임 예외를 throw하지 않아야합니다. 2) 즉시 슈퍼 메서드를 호출해야합니다. 3) 이미지를로드하는 것과 같이 잠재적으로 장기간 실행되는 작업을 시도해서는 안됩니다! –
이 문제를 피하는 방법을 권하고 싶습니다. – Ofek
어느 'this'? 구체적으로 말하십시오. –