作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我刚刚将一个应用程序从 Java 6u13 升级到 Java 7u25,我发现 getMinimumWidth 为 JTextPanes 返回的宽度非常不同,这在用户界面中造成了很大的问题。我想了解有关更改的更多信息。任何人都可以指出一个特定的错误 ID 来解释这个问题。我下面的测试程序的输出是:
Java 版本:1.6.0_13最小尺寸:java.awt.Dimension[width=6,height=25]
Java 版本:1.7.0_25最小尺寸:java.awt.Dimension[width=33,height=25]
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextPane;
import javax.swing.SwingUtilities;
import javax.swing.text.BadLocationException;
import javax.swing.text.Style;
import javax.swing.text.StyleContext;
import javax.swing.text.StyledDocument;
public class JTextPaneTest extends JTextPane
{
private static void createAndShowGUI()
{
System.out.println("Java version: " + System.getProperty("java.version"));
// Create and set up the window.
JFrame frame = new JFrame("ScaledJTextPane using BufferedImage");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JTextPaneTest textPane = new JTextPaneTest();
StyledDocument doc = textPane.getStyledDocument();
Style defaultStyle = StyleContext.getDefaultStyleContext().getStyle(StyleContext.DEFAULT_STYLE);
textPane.setFont(new Font("Dialog", Font.PLAIN, 14));
String plainText = "This is test.";
try
{
doc.insertString(doc.getLength(), plainText, defaultStyle);
}
catch (BadLocationException ble)
{
System.err.println("Couldn't insert text into text pane.");
}
// Force size calculation
textPane.getPreferredSize();
System.out.println("Minimum size: " + textPane.getMinimumSize().toString());
final JPanel panel = new JPanel();
panel.add(textPane, BorderLayout.CENTER);
// Add content to the window.
panel.setOpaque(true);
panel.setBackground(Color.WHITE);
frame.getContentPane().add(panel, BorderLayout.CENTER);
frame.setSize(400, 300);
//Display the window.
frame.setVisible(true);
}
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
createAndShowGUI();
}
});
}
}
最佳答案
来自 Oracle 论坛.. 似乎是相关的。 Link
关于java - Java 6 和 Java 7 之间的 JTextPane getMinimumWidth 发生了什么变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17969413/
我刚刚将一个应用程序从 Java 6u13 升级到 Java 7u25,我发现 getMinimumWidth 为 JTextPanes 返回的宽度非常不同,这在用户界面中造成了很大的问题。我想了解有
我是一名优秀的程序员,十分优秀!