私はJFileChooserのを持っていると私はそれが右から左から指向にするために、そして私が使用したいと思う:RTLを設定するJFileChooserの内部でスクロールバーの向きを設定しますか?
applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
が、問題が表示されます。 JFileChooserダイアログでRTLが正しく設定されているにもかかわらず、水平スクロールバーが左に設定されています。この画像を見て:
私はそれをどのように修正することができますか?ここで
がSSCCEです:
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.filechooser.FileView;
import java.io.File;
import java.awt.ComponentOrientation;
import java.awt.Dimension;
public class MyFileChooser extends JFileChooser
{
private String extension;
private String title;
public MyFileChooser(String extension, String title)
{
super();
this.extension = extension;
this.title = title;
addChoosableFileFilter(new FileNameExtensionFilter(String.format("(*.%1$s) فقط %1$s ملفات", extension), extension));
applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
}
@Override public String getDialogTitle()
{
return title;
}
}
メイン:
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;
public class MainFrame extends JFrame implements ActionListener
{
public MyFileChooser chooser;
public MainFrame()
{
super("Main Frame");
setDefaultCloseOperation(EXIT_ON_CLOSE);
try{ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}
catch(Exception e){ System.out.println("Unable to load Windows look and feel");}
setPreferredSize(new Dimension(300, 100));
((JPanel) getContentPane()).setBorder(new EmptyBorder(13, 13, 13, 13));
setLayout(new FlowLayout());
JButton btn = new JButton("Open");
btn.setActionCommand("myButton");
btn.addActionListener(this);
add(btn);
JPanel panel = new JPanel();
chooser = new MyFileChooser("aaa", "The Title");
chooser.setAcceptAllFileFilterUsed(false);
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
chooser.setFileHidingEnabled(false);
pack();
setLocationRelativeTo(null);
setVisible(true);
setResizable(false);
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("myButton"))
{
int status = chooser.showOpenDialog(null);
// blah blah
}
}
public static void main(String[] args)
{
new MainFrame();
}
}
はまた、私は次の解決策について考えたが、それは影響を与えませんでした:
JScrollBar scr = new JScrollBar();
scr.applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
UIManager.put("JScrollPane.ScrollBar", scr);
かもしれhttp://www.java2s.com/Tutorial/Java/0240__Swing/CustomizingaJFileChooserLookandFeel.htmとhttp://www.java2s.com/Tutorial/Java/0240__Swing/1260__JFileChooser.htmて、http: //www.java2s.com/Tutorial/Java/0240__Swing/LocalizeaJFileChooser.htm – mKorbel