in addition to my Java JFilechooser question . It was proposed to extend BasicFileChooserUI, override create / getModel and provide an implementation of BasicDirectoryModel.
I tried this, however, I could not achieve this.
JFileChooser does not have a setUI method. So your only choice is to override getUI.
JFileChooser blah = new JFileChooser() { CustomFileChooserUI asdf = null; private static final long serialVersionUID = 1L; public FileChooserUI getUI() { if (asdf == null) { asdf = new CustomFileChooserUI(this); } return asdf; } };
and
public class CustomFileChooserUI extends BasicFileChooserUI { public CustomFileChooserUI(JFileChooser b) { super(b); } @Override protected void createModel() {
but I get exceptions. Please, help
java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (native method) at sun.reflect.NativeConstructorAccessorImpl.newInstance (Unknown source) at sun.reflect.DelegatingConstructorAccessorImfn.nn. Constructor.newInstance (Unknown source) on org.eclipse.ve.internal.java.vce.launcher.remotevm.JavaBeansLauncher.main (JavaBeansLauncher.java:86) Called: java.lang.NullPointerException in javax.swing.plafb.plasb.plafbpl.baf. BasicFileChooserUI $ BasicFileView.getName (Unknown source) IWAV0052E Invocation Target qwere creation exception
at javax.swing.JFileChooser.getName(Unknown Source) at javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxRenderer.getListCellRendererComponent(Unknown Source) at javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source) at javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Source) at javax.swing.plaf.basic.BasicListUI$Handler.valueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source) at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source) at javax.swing.DefaultListSelectionModel.setSelectionInterval(Unknown Source) at javax.swing.JList.setSelectedIndex(Unknown Source) at javax.swing.plaf.basic.BasicComboPopup.setListSelection(Unknown Source) at javax.swing.plaf.basic.BasicComboPopup.access$300(Unknown Source) at javax.swing.plaf.basic.BasicComboPopup$Handler.itemStateChanged(Unknown Source) at javax.swing.JComboBox.fireItemStateChanged(Unknown Source) at javax.swing.JComboBox.selectedItemChanged(Unknown Source) at javax.swing.JComboBox.contentsChanged(Unknown Source) at javax.swing.AbstractListModel.fireContentsChanged(Unknown Source) at javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.setSelectedItem(Unknown Source) at javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.addItem(Unknown Source) at javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.access$900(Unknown Source) at javax.swing.plaf.metal.MetalFileChooserUI.doDirectoryChanged(Unknown Source) at javax.swing.plaf.metal.MetalFileChooserUI.access$1200(Unknown Source) at javax.swing.plaf.metal.MetalFileChooserUI$5.propertyChange(Unknown Source) at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source) at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source) at java.awt.Component.firePropertyChange(Unknown Source) at javax.swing.JFileChooser.setCurrentDirectory(Unknown Source) at javax.swing.JFileChooser.<init>(Unknown Source) at javax.swing.JFileChooser.<init>(Unknown Source) at qwere$1.<init>(qwere.java:12)
source share