Я работаю над интерфейсом JFileChooser с некоторыми настройками. Я хочу получить градиентный фон для JFilechooser. Все, что я смог сделать, это пользовательский JFilechooser, но я не уверен, как я могу добавить gardientbackground к этому Filechooser
public class myCustomFileChooser extends JFileChooser{
static Point compCoords;
static Boolean isMaximized = false;
static Dimension defaultSize = new Dimension(1280,720);
static IRTitleBar titleBar;
//
static java.net.URL logoURL = IRLookAndFeel.class.getResource("photos/topbar/12_white.png");
//
static BufferedImage logoImg;
@Override
protected JDialog createDialog(Component parent) throws HeadlessException {
FileChooserUI ui = getUI();
String title = ui.getDialogTitle(this);
putClientProperty(AccessibleContext.ACCESSIBLE_DESCRIPTION_PROPERTY,
title);
JDialog dialog;
Window window;
window = JOptionPane.getFrameForComponent(parent);
if (window instanceof Frame) {
dialog = new JDialog((Frame)window, title, true);
dialog.setUndecorated(true);
} else {
dialog = new JDialog((Dialog)window, title, true);
dialog.setUndecorated(true);
}
dialog.setComponentOrientation(this.getComponentOrientation());
//
try {
IRJFrame.logoImg = ImageIO.read(IRJFrame.logoURL);
} catch (IOException ex) {
// handle exception...
}
//
IRJFrame.titleBar = new IRTitleBar(IRJFrame.logoImg, BackgroundPanel.ACTUAL, 0.01f, 0.5f);
//
//Add Actions for Buttons
//
IRTitleBar.closeBtn.addActionListener((ActionEvent e) -> {
System.exit(0);
});
//
IRTitleBar.minimizeBtn.addActionListener((ActionEvent e) -> {
//dialog.setState(JFrame.ICONIFIED);
});
//
IRTitleBar.maximizeBtn.addActionListener((ActionEvent e) -> {
if(isMaximized){
//setExtendedState(getExtendedState() | JFrame.NORMAL);
setSize(defaultSize);
setOpaque(false);
setLocation(150,150);
}else {
//setExtendedState(getExtendedState() | JFrame.MAXIMIZED_BOTH);
setOpaque(false);
}
isMaximized = !isMaximized;
});
//
compCoords = null;//new Point(0,0);
//
IRJFrame.titleBar.addMouseListener(new MouseListener(){
//
@Override
public void mouseReleased(MouseEvent e) {
compCoords = e.getPoint();
}
@Override
public void mouseClicked(MouseEvent e) {
compCoords = e.getPoint();
}
@Override
public void mousePressed(MouseEvent e) {
compCoords = e.getPoint();
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
});
IRJFrame.titleBar.addMouseMotionListener(new MouseMotionListener(){
@Override
public void mouseDragged(MouseEvent e) {
Point currCoords = e.getLocationOnScreen();
setLocation(currCoords.x - compCoords.x, currCoords.y - compCoords.y);
}
@Override
public void mouseMoved(MouseEvent e) {
}
});
//
Container contentPane = dialog.getContentPane();
contentPane.setLayout(new BorderLayout());
//contentPane.add(titleBar,BorderLayout.NORTH);
contentPane.add(this, BorderLayout.CENTER);
/*if (JDialog.isDefaultLookAndFeelDecorated()) {
boolean supportsWindowDecorations =
UIManager.getLookAndFeel().getSupportsWindowDecorations();
if (supportsWindowDecorations) {
dialog.getRootPane().setWindowDecorationStyle(JRootPane.FILE_CHOOSER_DIALOG);
}
} */
dialog.pack();
dialog.setLocationRelativeTo(parent);
//dialog.setUndecorated(true);
//dialog.getRootPane().setWindowDecorationStyle(JRootPane.NONE);
return dialog;
}
}
Что я должен сделать, чтобы настроить JFileChooser так, чтобы у меня был отличный фон. Мне не удалось найти метод рисования, и у меня нет доступа к панели содержимого JFilechooser. Как мне поступить?