JLabel txt = new JLabel("sahaja");txt.setEnabled(false);这样字体颜色就没法显示了

解决方案 »

  1.   

    忘记说了,先要设置 Windows LookAndFeel
    下面这段你编译试试================= demo.java ======================================
    import java.awt.*;
    import javax.swing.*;public class demo extends JFrame {
        
        public demo() {
            JLabel txt = new JLabel("不是有的嘛!");
            txt.setFont(new Font("宋体", 0, 15));
            txt.setEnabled(false);
            
            getContentPane().add(txt);
            
            setSize(100, 100);
            setLocation(200, 200);
            show();
        }
        
        public static void main(String args[]) {
            try {
                UIManager.setLookAndFeel(
                    "com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
            } catch (Exception e) {}
            new demo();
        }
    }
      

  2.   

    以下代码为label上的字符增加一个阴影,凹凸显示的方法类似,修改paintComponent方法。
    import javax.swing.*;
    import java.awt.*;public class TestLabel extends JFrame{
        
        /** Creates a new instance of TestLabel */
        public TestLabel() {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            test1();
        }
        
        private void test1()
        {
            getContentPane().add(new MyLabel("This is"), "Center");
        }
        
        class MyLabel extends JLabel
        {
            boolean backFlag = false;
            public MyLabel(String str)
            {
                super(str);
            }
            
            public void paintComponent(Graphics g)
            {
                g.translate(-1, -1);
                backFlag = true;
                super.paintComponent(g);
                g.translate(1, 1);
                super.paintComponent(g);
            }
            
            public Color getForeground()
            {
                if (backFlag)
                {
                    return Color.BLACK;
                }
                return super.getForeground();
            }
        }
        
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            JFrame f  = new TestLabel();
            f.setSize(100, 100);
            f.show();
        }
        
    }
      

  3.   

    3xp(kk),JDK自带的例子中有关于浮雕文字处理的源代码,不凡去看看。这个例子在jfc/java2d工程下,文件名为Stars3D.java。