问题描述
JComboBox的“内容”窗口具有蓝色突出显示,我不知道该如何消除,请帮忙。
以下是问题的一个示例:
let urls = [URL1,URL2,URL3,....]
for url in urls {
AF.download(url,method: .get,parameters: nil,encoding: URLEncoding.default,headers:
headers,interceptor: nil,to: destination).response { (responseData) in
self.urlLoad.append(responseData.fileURL!)
completion(self.urlLoad)
}
}
解决方法
组合框是一个复杂的组件,在内部使用多个组件。 UI决定了组件之间如何交互。
例如,将您的代码更改为以下内容:
JComboBox combox;
combox = new JComboBox(model);
combox.setBorder( new LineBorder(Color.YELLOW) );
BasicComboBoxRenderer renderer = new BasicComboBoxRenderer();
renderer.setBorder( new LineBorder(Color.RED) );
combox.setRenderer(renderer);
您会发现蓝色突出显示框不是组合框或其渲染的边框,这意味着还有另一个我们无法访问的内部容器。
如果您确实想解决问题,则需要自定义MetalComboBoxUI
类,这绝非易事,因为许多绘画方法都是私有的。但是,请查看该类的代码,看看是否可以完成。
您的代码的其他问题:
-
请勿使用
updateUI()
。更改LAF时,该方法在Swing中内部调用。您没有更改LAF -
应在框架可见之前将组件添加到框架。这将消除对updateUI()的需要。