Java - 如何增加 JFileChooser 中文件夹名称的字体?
Java - How can i increase the font of the folder names in JFileChooser?
当 运行 我的 Java 程序在高分辨率 4k 屏幕上时,JFileChooser 中文件夹名称的字体显得很小,如下所示:
我试图找到一种方法来仅在 JFileChooser 中增加 folder/file 名称字体大小。我目前的想法是创建一个自定义 JFileChooser,在其元素上循环并尝试增加文件夹名称的字体。我想我会增加 FilePane 的字体,但它不起作用。什么都没发生。这是我的代码:
public class JFileChooserCustom extends JFileChooser {
public JFileChooserCustom() {
setFileChooserFont( this.getComponents() );
}
public void setFileChooserFont( Component[] comp ) {
for( int x = 0; x < comp.length; x++ ) {
// System.out.println( comp[x].toString() ); // Trying to know the type of each element in the JFileChooser.
if(comp[x] instanceof Container) setFileChooserFont(((Container)comp[x]).getComponents());
try{
if(comp[x] instanceof FilePane) comp[x].setFont( comp[x].getFont().deriveFont( comp[x].getFont().getSize() * 2f ) );
}
catch(Exception e){}//do nothing
}
}
}
我希望有人能帮助我。
不要使用 FilePane,而是使用 JList 和 JTable(FilePane 使用这些组件来呈现文件列表)。
import java.awt.Component;
import java.awt.Container;
import javax.swing.JFileChooser;
import javax.swing.JList;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
/**
* <code>IncreaseFileChooserFont</code>.
*/
public class IncreaseFileChooserFont {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFileChooser chooser = new JFileChooser();
setFileChooserFont(chooser.getComponents());
chooser.showOpenDialog(null);
System.exit(0);
}
});
}
public static void setFileChooserFont(Component[] comp) {
for (int x = 0; x < comp.length; x++) {
// System.out.println( comp[x].toString() ); // Trying to know the type of each element in the JFileChooser.
if (comp[x] instanceof Container)
setFileChooserFont(((Container) comp[x]).getComponents());
try {
if (comp[x] instanceof JList || comp[x] instanceof JTable)
comp[x].setFont(comp[x].getFont().deriveFont(comp[x].getFont().getSize() * 2f));
} catch (Exception e) {
} // do nothing
}
}
}
您可以通过单独设置 JFilechooser 的每个组件的字体来实现。
// Inside method where you are preparing your JFilechooser:
JFileChooser fc = new JFileChooser(".");
setFileChooserFont(fc.getComponents());
public void setFileChooserFont(Component[] comp)
{
for(int x = 0; x < comp.length; x++)
{
if(comp[x] instanceof Container) setFileChooserFont(((Container)comp[x]).getComponents());
try{comp[x].setFont(font);}
catch(Exception e){}//do nothing
}
}
希望这会有所帮助。 :-)
当 运行 我的 Java 程序在高分辨率 4k 屏幕上时,JFileChooser 中文件夹名称的字体显得很小,如下所示:
我试图找到一种方法来仅在 JFileChooser 中增加 folder/file 名称字体大小。我目前的想法是创建一个自定义 JFileChooser,在其元素上循环并尝试增加文件夹名称的字体。我想我会增加 FilePane 的字体,但它不起作用。什么都没发生。这是我的代码:
public class JFileChooserCustom extends JFileChooser {
public JFileChooserCustom() {
setFileChooserFont( this.getComponents() );
}
public void setFileChooserFont( Component[] comp ) {
for( int x = 0; x < comp.length; x++ ) {
// System.out.println( comp[x].toString() ); // Trying to know the type of each element in the JFileChooser.
if(comp[x] instanceof Container) setFileChooserFont(((Container)comp[x]).getComponents());
try{
if(comp[x] instanceof FilePane) comp[x].setFont( comp[x].getFont().deriveFont( comp[x].getFont().getSize() * 2f ) );
}
catch(Exception e){}//do nothing
}
}
}
我希望有人能帮助我。
不要使用 FilePane,而是使用 JList 和 JTable(FilePane 使用这些组件来呈现文件列表)。
import java.awt.Component;
import java.awt.Container;
import javax.swing.JFileChooser;
import javax.swing.JList;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
/**
* <code>IncreaseFileChooserFont</code>.
*/
public class IncreaseFileChooserFont {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFileChooser chooser = new JFileChooser();
setFileChooserFont(chooser.getComponents());
chooser.showOpenDialog(null);
System.exit(0);
}
});
}
public static void setFileChooserFont(Component[] comp) {
for (int x = 0; x < comp.length; x++) {
// System.out.println( comp[x].toString() ); // Trying to know the type of each element in the JFileChooser.
if (comp[x] instanceof Container)
setFileChooserFont(((Container) comp[x]).getComponents());
try {
if (comp[x] instanceof JList || comp[x] instanceof JTable)
comp[x].setFont(comp[x].getFont().deriveFont(comp[x].getFont().getSize() * 2f));
} catch (Exception e) {
} // do nothing
}
}
}
您可以通过单独设置 JFilechooser 的每个组件的字体来实现。
// Inside method where you are preparing your JFilechooser:
JFileChooser fc = new JFileChooser(".");
setFileChooserFont(fc.getComponents());
public void setFileChooserFont(Component[] comp)
{
for(int x = 0; x < comp.length; x++)
{
if(comp[x] instanceof Container) setFileChooserFont(((Container)comp[x]).getComponents());
try{comp[x].setFont(font);}
catch(Exception e){}//do nothing
}
}
希望这会有所帮助。 :-)