我学习绘图,找了个代码段,达不到效果,但找不出问题,向各位求助,希望能推荐一些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); //将画刷复原
}}
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); //将画刷复原
}}
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);
}
});
}
}