回 帖 发 新 帖 刷新版面

主题:[讨论]背景变色问题!!

为什么背景不变色啊??请指教!!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class man extends JFrame
{
        public static void main(String[] args)
        {
                man m=new man();
                m.setSize(400,350);
                m.setLocation(300,180);
                woman w=m.new woman();    
                m.add(w);            
                w.setBackground(Color.RED);
                m.setVisible(true);
            m.setDefaultCloseOperation(man.EXIT_ON_CLOSE);
        }
        class woman extends JPanel 
        {
                public void paintComponent(Graphics g)
          {
                Graphics2D g1=(Graphics2D)g;
                g1.drawLine(1,1,1,81);
                g1.drawLine(11,1,11,81);
                g1.drawLine(1,1,81,1);
                g1.drawLine(1,11,81,11);
          }
        }
}

回复列表 (共2个回复)

沙发

class woman extends JPanel 
{
     public void paintComponent(Graphics g)
     {
                super.paintComponent(g);  //在绘制组件事一定要先调用父类同名方法
                Graphics2D g1=(Graphics2D)g;
                g1.drawLine(1,1,1,81);
                g1.drawLine(11,1,11,81);
                g1.drawLine(1,1,81,1);
                g1.drawLine(1,11,81,11);
                this.repaint();   // 重新绘制组件
     }
}

板凳

不知是否是你想要的结果,做个参考.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Man extends JFrame {
    public static void main(String[] args) {
        Man m = new Man();
        m.setSize(400, 350);
        m.setLocation(300, 180);
        
        //-------------------------
        m.setBackground(Color.WHITE);
        //-------------------------
        
        woman w = m.new woman();
        
        m.add(w);
        
        m.setVisible(true);
        m.setDefaultCloseOperation(Man.EXIT_ON_CLOSE);
    }

    class woman extends JPanel {
        public void paintComponent(Graphics g) {
            super.paintComponents(g);
            Graphics2D g1 = (Graphics2D) g;
            
            //--------------------
            g1.setColor(Color.red);
            //--------------------
            
            g1.drawLine(1, 1, 1, 81);
            g1.drawLine(11, 1, 11, 81);
            g1.drawLine(1, 1, 81, 1);
            g1.drawLine(1, 11, 81, 11);
            
            
            this.repaint();
        }
    }
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册