我学习绘图,找了个代码段,达不到效果,但找不出问题,向各位求助,希望能推荐一些java绘图方面的知识:
            System.exit(0);        }    });  
}
}
//创建各种容器的类
class ShapesPanel extends JPanel {
    final int maxCharHeight = 15;
    final Color bg = Color.white;
 //声明背景颜色为灰色
    final Color fg = Color.blue;
      //声明前景颜色为蓝色
    public ShapesPanel() {
        setBackground(bg);
            //设置背景颜色
        setForeground(fg);
            //设置前景颜色
        //创建组合边框
        setBorder(BorderFactory.createCompoundBorder(
                BorderFactory.createRaisedBevelBorder(),
                BorderFactory.createLoweredBevelBorder()));
    }    
public void paintComponent(Graphics g1) {
        super.paintComponent(g1);
      //清空背景颜色
         float thick = 0.5f;
               //设置画刷的粗细为 0.5
         Graphics2D g = (Graphics2D)g1; 
        Stroke stroke = g.getStroke();
            //得到当前的画刷
         g.setStroke(new BasicStroke(thick, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_ROUND));
                 //通过该方法使图形去除锯齿状
         g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                          RenderingHints.VALUE_ANTIALIAS_ON);
                        String txt= "我的文章";
                 int style=2;//0普通1粗体2斜体3粗斜
         g.setFont(new Font("宋体", 2, 15)); //15为字大小
         //设置笔刷为黑色
         g.setPaint(Color.black);
                 g.drawString(txt,200,150);
                 g.setPaint(Color.red);
         g.draw(new Line2D.Float(0,0,200,150)); //画线 
                g.setPaint(Color.blue);
                 g.draw(new Rectangle2D.Float(200,150,100,100));
                 g.setStroke(stroke); //将画刷复原
            }}

解决方案 »

  1.   


    import java.awt.*;
    import java.awt.geom.*;
    import javax.swing.*;class ShapesPanel extends JPanel {
    final int maxCharHeight = 15;
    final Color bg = Color.GRAY;  //声明背景颜色为灰色
    final Color fg = Color.BLUE;  //声明前景颜色为蓝色 public ShapesPanel() {
    setBackground(bg);  //设置背景颜色
    setForeground(fg); //设置前景颜色
    //创建组合边框
    setBorder(BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(),BorderFactory.createLoweredBevelBorder()));
    }  
    public void paintComponent(Graphics g1) {
    super.paintComponent(g1); //清空背景
    float thick = 0.5f;       //设置画刷的粗细为 0.5
    Graphics2D g = (Graphics2D)g1; 
    Stroke stroke = g.getStroke(); //得到当前的画刷
    g.setStroke(new BasicStroke(thick, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_ROUND));
    //通过该方法使图形去除锯齿状
    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                       RenderingHints.VALUE_ANTIALIAS_ON);
    String text= "我的文章";
    g.setFont(new Font("宋体", Font.ITALIC , 16)); //16为字大小
    //设置笔刷为黑色
    g.setPaint(Color.BLACK);
    g.drawString(text,200,150);
    g.setPaint(Color.RED);
    g.draw(new Line2D.Float(0,0,200,150)); //画线 
    g.setPaint(Color.BLUE);
    g.draw(new Rectangle2D.Float(200,150,100,100));
    g.setStroke(stroke); //将画刷复原
    } public static void main(final String[] args) {
    java.awt.EventQueue.invokeLater(new Runnable(){
    public void run(){
    JFrame frame = new JFrame("Example");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setContentPane(new ShapesPanel());
    frame.setPreferredSize(new Dimension(600,400));
    frame.pack();
    frame.setVisible(true);
    }
    });
    }
    }