在bos开发中,将必输控件的背景色设置成特定的颜色,而不是自带的黄色,本以为用这下面样的代码就可以,竟然不好用! txtTest.setBackground(new Color(220,255,255));//无效, 纳闷!不好用干嘛还公布这个方法,有点欺骗的感觉! 其实仔细看一下这些控件,它们都是复合控件,本质上是由多件控件组成的,呵呵,有意思! 常用控件: Java代码 // 文本框,类:com.kingdee.bos.ctrl.swing.KDFormattedTextField txtTest.setCustomBackgroundColor(new Color(220,255,255)); // F7控件,类:com.kingdee.bos.ctrl.extendcontrols.KDBizPromptBox ((KDTextField)prmTest.getEditor()).setCustomBackgroundColor(new Color(220,255,255)); // 日期控件,类:com.kingdee.bos.ctrl.swing.KDDatePicker ((BasicFormattedTextField)pkTest.getEditor().getEditorComponent())<br> .setCustomBackgroundColor(new Color(220,255,255));<br> 下拉列表框与它们不同,需要特殊处理 Java代码 // 要先写一个内部类,其中实现了ListCellRenderer接口。 class FontCellRenderer extends JPanel implements ListCellRenderer { private String text; private Color background; private Color foreground; // 实现ListCellRenderer接口,须要实现此方法,以得取得要渲染的组件 public Component getListCellRendererComponent(JList list, Object value, int index,boolean isSelected, boolean cellHasFocus) { text = value.toString(); background = new Color(220,255,255); foreground = Color.BLACK; return this; } // 重写绘制方法, public void paintComponent(Graphics g) { g.setColor(background); // 设置背景色 g.fillRect(0, 0, getWidth(), getHeight()); g.setColor(foreground); //在制定位置绘制文本 g.drawString(text, 5, 15); } // 设置绘制Cell的大小 public Dimension getPreferredSize() { return new Dimension(30, 20); } } 在设置下拉列表框时如下,就好啦 // 下拉列表框,类:com.kingdee.bos.ctrl.swing.KDComboBox lstText.setRenderer(new FontCellRenderer());
控件背景色
猜你喜欢
转载自sanyecao2314.iteye.com/blog/1894655
今日推荐
周排行