【问题标题】:JFrame text displaying wrongJFrame文本显示错误
【发布时间】:2013-10-07 03:43:26
【问题描述】:

我正在创建一个使用未装饰边框的应用程序,并希望为我的 JFrame 添加阴影。我得到了阴影,但在这个过程中,文本都搞砸了。

由于程序的大小,我无法发布我的所有代码,但是当我删除此行时问题确实消失了。 setBackground(新颜色(0, 0, 0, 0)); 那么什么会导致文本显示模糊和不正确呢?它更大胆,一些字母似乎更高。 而且我无法发布图片,因为我没有 10 级的声望。 这是我的更多代码:

    int extendBy=30;
    setMaximumSize(new Dimension(width + extendBy, height + extendBy));
    setMinimumSize(new Dimension(width + extendBy, height + extendBy));
    setPreferredSize(new Dimension(width + extendBy, height + extendBy));
setUndecorated(true);

setBackground(new Color(0, 0, 0, 0));   // all hell breaks loose here
setContentPane(new ShadowPane());
getContentPane().setBackground(Color.BLACK);

    setLocationRelativeTo(null);
    setLayout(null);   // I know setting null this is bad practice

编辑:获得 10 声望,所以这是一张图片(看 W 或 A 或 k):

【问题讨论】:

  • 这里有你的 10 声望,现在贴一张照片 :)
  • Due to the size of the program I can not post all of my code - 发布您的 SSCCE 来证明问题。
  • 你有什么魔法?说真的,你是怎么做到的
  • setLayout(null); // I know setting null this is bad practice 那么为什么要这样做呢? 特别是在明显被破坏的代码中?顺便说一句 - 通往天堂的阶梯是由齐柏林飞艇,而敲开天堂的门是由鲍勃·迪伦和一群人表演的,包括埃里克·克莱普顿和 Guns'n'Roses。我也很确定 Louei Louie 是一群人乐队,没有一个是 The Kinks。编制名单的人似乎对谁执行了什么感到有些困惑。不过他们对音乐很有品味。 ;)
  • 这是什么平台,什么JRE品牌和版本?你能在其他软件上重现这个问题吗?这看起来有点像字体渲染库中的一个错误,所以如果其他人在他们的系统上看到这不同,我不会感到惊讶。确定系统的哪个方面会触发这将有所帮助。顺便说一句,为什么你想要透明单元格有什么特别的原因吗?

标签: java swing text fonts jframe


【解决方案1】:

尝试重写此 JTable 的 paintComponent 方法。

怎么做:Overriding paintComponent

对于您的情况,我会使用抗锯齿来消除那些不需要的效果。

jTable1 = new javax.swing.JTable(){
        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            Graphics2D g2 = (Graphics2D)g;
            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON );
        }
    };

【讨论】:

    猜你喜欢
    • 2016-06-08
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    相关资源
    最近更新 更多