0
我在使用Java製作的界面中遇到問題。它正在爲JPanel,JTextField,JCheckBox,JRadioButton和JButton正確工作,它們都被正確繪製。但JComboBox不。它只繪製任何已設置的背景顏色。JComboBox沒有畫
由於項目的複雜性,這些組件都沒有添加到容器中,而是實際存在,並且被繪製到容器上,其他組件都在工作,所以我不認爲這是問題:這是創建代碼:
paintableComponent = new JComboBox(new String[]{"test"});
和油漆代碼,這是一個假組分內預先
if(this.getParentComponent() != null && this.getParentComponent() instanceof Component && !((Component)this.getParentComponent()).getValue("style.overflow").equals("visible")){
g.setClip(this.getParentComponent().getX(), this.getParentComponent().getY(), this.getParentComponent().getWidth(), this.getParentComponent().getHeight());
}
Graphics oldG = g;
g = g.create(getX(), getY(), getWidth(), getHeight());
paintableComponent.paint(g);
g = oldG;
Iterator<Component> i = children.iterator();
while(i.hasNext()){
i.next().paint(g);
}
由於
爲更好地幫助更快地編輯quesstion與[SSCCE](http://sscce.org/) – mKorbel 2012-03-30 07:33:22
原來的問題是因爲我手動設置真實組件的邊界時,僞組件。這適用於沒有子項的組件,但在其他情況下會失敗。 解決方案是重寫JComboBox的setBounds方法,以允許設置兒童界限。 – 2012-03-30 07:45:14