3

我正在创建一个使用未装饰边框的应用程序,并希望为我的 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):文字图片

4

1 回答 1

1

尝试覆盖此 JTable 的 paintComponent 方法。

怎么做:覆盖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 );
        }
    };
于 2013-11-30T17:37:39.283 回答