Java 在JEditorPane/JTextArea上显示并附加图标,每个图标都显示在换行符中?
我正在尝试显示JEditorpane文件扩展名的系统图标,但只能显示最后一个图标?我想在换行符上追加并显示每个图标Java 在JEditorPane/JTextArea上显示并附加图标,每个图标都显示在换行符中?,java,swing,icons,jtextcomponent,Java,Swing,Icons,Jtextcomponent,我正在尝试显示JEditorpane文件扩展名的系统图标,但只能显示最后一个图标?我想在换行符上追加并显示每个图标 String fileList[] = {".pdf", ".txt", ".doc", ".exe"} JLabel label; FileSystemView fsv = FileSystemView.getFileSystemView(); icon = fsv.getSystemIcon(File.createTempFile("file.", "." + filetype
String fileList[] = {".pdf", ".txt", ".doc", ".exe"}
JLabel label;
FileSystemView fsv = FileSystemView.getFileSystemView();
icon = fsv.getSystemIcon(File.createTempFile("file.", "." + filetype[i]));
label = new JLabel(icon);
StyleContext context = new StyleContext();
StyledDocument document = new DefaultStyledDocument(context);
Style labelStyle = context.getStyle(StyleContext.DEFAULT_STYLE);
StyleConstants.setComponent(labelStyle, label);
try {
document.insertString(document.getLength(), "\n", labelStyle);
} catch (BadLocationException badLocationException) {
System.err.println("Oops");
}
myjEditorPane.setDocument(document);
标签样式一次只能有一个图标的样式。将样式添加到文档时,不会保存样式
String fileList[] = {".pdf", ".txt", ".doc", ".exe"}
JLabel label;
FileSystemView fsv = FileSystemView.getFileSystemView();
icon = fsv.getSystemIcon(File.createTempFile("file.", "." + filetype[i]));
label = new JLabel(icon);
StyleContext context = new StyleContext();
StyledDocument document = new DefaultStyledDocument(context);
Style labelStyle = context.getStyle(StyleContext.DEFAULT_STYLE);
StyleConstants.setComponent(labelStyle, label);
try {
document.insertString(document.getLength(), "\n", labelStyle);
} catch (BadLocationException badLocationException) {
System.err.println("Oops");
}
myjEditorPane.setDocument(document);
如果要使用不同的图标,请使用:
String fileList[] = {".pdf", ".txt", ".doc", ".exe"}
JLabel label;
FileSystemView fsv = FileSystemView.getFileSystemView();
icon = fsv.getSystemIcon(File.createTempFile("file.", "." + filetype[i]));
label = new JLabel(icon);
StyleContext context = new StyleContext();
StyledDocument document = new DefaultStyledDocument(context);
Style labelStyle = context.getStyle(StyleContext.DEFAULT_STYLE);
StyleConstants.setComponent(labelStyle, label);
try {
document.insertString(document.getLength(), "\n", labelStyle);
} catch (BadLocationException badLocationException) {
System.err.println("Oops");
}
myjEditorPane.setDocument(document);
textPane.insertIcon(...);
在这种情况下,执行语句时会在文档中插入一个唯一的图标。try{
String fileList[] = {".pdf", ".txt", ".doc", ".exe"}
JLabel label;
FileSystemView fsv = FileSystemView.getFileSystemView();
icon = fsv.getSystemIcon(File.createTempFile("file.", "." + filetype[i]));
label = new JLabel(icon);
StyleContext context = new StyleContext();
StyledDocument document = new DefaultStyledDocument(context);
Style labelStyle = context.getStyle(StyleContext.DEFAULT_STYLE);
StyleConstants.setComponent(labelStyle, label);
try {
document.insertString(document.getLength(), "\n", labelStyle);
} catch (BadLocationException badLocationException) {
System.err.println("Oops");
}
myjEditorPane.setDocument(document);
try{
StyledDocument doc = jTextPane1.getStyledDocument();
Style def = StyleContext.getDefaultStyleContext().getStyle(StyleContext.DEFAULT_STYLE );
Style regular = doc.addStyle( "regular", def );
Icon icon ;
FileSystemView fsv = FileSystemView.getFileSystemView();
for(int i=0;i<3;i++ ){
icon = fsv.getSystemIcon(File.createTempFile("myfile.",".pdf"));
jTextPane1.insertIcon(icon);
doc.insertString( doc.getLength(),"pdfBook"+i+"\n", regular );
}
}catch(Exception excep){
System.out.println("Exception");
}
StyledDocument doc=jTextPane1.getStyledDocument();
Style def=StyleContext.getDefaultStyleContext().getStyle(StyleContext.DEFAULT_Style);
常规样式=doc.addStyle(“常规”,def);
图标;
FileSystemView fsv=FileSystemView.getFileSystemView();
对于(int i=0;i