大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、Java程序必须运行在有Java环境的电脑中
10年积累的网站制作、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站后付款的网站建设流程,更有泽普免费网站建设让你可以放心的选择与我们合作。
2、给你提供一个多边形填充的例子
public static void drawSelPolygon(Graphics2D g2, Color frameColor, int[] x, int[] y,
int numPoints) {
g2.setColor(frameColor);
//初始化多边形
Polygon p = new Polygon(x, y, numPoints);
//取得多边形外接矩形
Rectangle r = p.getBounds();
//裁切
g2.setClip(p);
//绘制填充线
for (int j = r.y; j-r.width r.y + r.height; j = j + 6) {
//--NG
Line2D line = new Line2D.Float(r.x, j, (r.x + r.width), j-r.width);
g2.draw(line);
}
//绘制多边形
g2.drawPolygon(p);
}
用路径来画 一般用GeneralPath类来实现,给出paintComponent方法的代码,供参考
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D)g;
//正六边形数据
float r = 100; //边长
float[] x1 = {0, 0.5f*r, 1.5f*r, 2*r, 1.5f*r, 0.5f*r};
float[] y1 = {0.866f*r, 1.732f*r, 1.732f*r, 0.866f*r, 0, 0};
g2d.translate(100, 100);
GeneralPath p = new GeneralPath();
p.moveTo(x1[0], y1[0]);
for (int i = 1; i y1.length; i++) {
p.lineTo(x1[i], y1[i]);
}
p.closePath();
g2d.draw(p);
}
public class MiniDraw implements ActionListener, MouseListener{ // Fields private JFrame frame = new JFrame("MiniDraw");
private DrawingCanvas canvas = new DrawingCanvas(); private JButton colorButton; // the button for colour, so we can change its background to the current color.
private JTextField textField; // the field for entering text to put on the canvas // fields for recording the information needed to perform the next action
private enum Action {Line,Rect, Oval, Triangle, Text, Dot, Move, Delete, Push, Pull}; private int pressedX; //where the mouse was pressed
private int pressedY; //where the mouse was pressed
private Action currentAction = Action.Line;
private Color currentColor = Color.black; private ListShape shapes = new ArrayList Shape();
/** Constructor sets up the GUI. */
public MiniDraw(){
frame.setSize(800,600); //The graphics area
canvas.addMouseListener(this);
frame.getContentPane().add(canvas, BorderLayout.CENTER); //The buttons
JPanel topPanel = new JPanel( );
frame.getContentPane().add(topPanel, BorderLayout.NORTH);
JPanel botPanel = new JPanel( );
frame.getContentPane().add(botPanel, BorderLayout.SOUTH);
addButton(topPanel, "New");
addButton(topPanel, "Open");
addButton(topPanel, "Save");
addButton(topPanel, "Delete");
addButton(topPanel, "Move");
colorButton = addButton(topPanel, "Color"); // remember the button so we can change its colour
addButton(topPanel, "Push");
addButton(topPanel, "Pull");
addButton(topPanel, "Reverse");
addButton(topPanel, "Quit"); botPanel.add(new JLabel("Shapes: "));
addButton(botPanel, "Line");
addButton(botPanel, "Rect");
addButton(botPanel, "Oval");
addButton(botPanel, "Triangle");
addButton(botPanel, "Dot");
addButton(botPanel, "Text");
textField = new JTextField("Enter text", 12);
botPanel.add(new JLabel(" : "));
botPanel.add(textField); frame.setVisible(true);
} /** Utility method to make new button and add it to the panel
Returns the button, in case we need it. */
private JButton addButton(JPanel panel, String name){
JButton button = new JButton(name);
button.addActionListener(this);
panel.add(button);
return button;
} /** Respond to button presses */ public void actionPerformed(ActionEvent e){
String button = e.getActionCommand();
//System.out.printf("Button: %s\n", button); //for debugging
if (button.equals("New") )
newDrawing();
else if (button.equals("Open") )
openDrawing();
else if (button.equals("Save") )
saveDrawing();
else if (button.equals("Color") )
selectColor();
else if (button.equals("Reverse") )
reverseDrawing();
else if (button.equals("Quit") )
frame.dispose();
else{ //
currentAction = Action.valueOf(button); // converts the String to an Action.
}
} /** Sets the current color.
* Also changes the color of the Color button and sets the background color of the canvas */
private void selectColor(){
Color newColor = JColorChooser.showDialog(frame,"Choose Color for new shapes", currentColor);
if (newColor!=null){
currentColor=newColor;
colorButton.setBackground(currentColor);
}
} // Respond to mouse events
/** When mouse is pressed, remember the position in order to construct the Shape when
* the mouse is released. */
public void mousePressed(MouseEvent e) {
int x = e.getX(); int y = e.getY();
//System.out.printf("Pressed at (%d, %d)\n", x, y); //for debugging
pressedX = x;
pressedY = y;
} /** When the Mouse is released, depending on the currentAction,
* either construct the shape that was being drawn, or perform the
* action (delete or move) on the shape under the point where the mouse was pressed.*/
public void mouseReleased(MouseEvent e) {
int x = e.getX(); int y = e.getY();
//System.out.printf("Released at (%d, %d)\n", x, y); //for debugging
if (currentAction==Action.Move)
moveShape(pressedX, pressedY, x, y);
else if (currentAction==Action.Delete)
deleteShape(x, y);
else if (currentAction==Action.Push)
pushShapeBackward(x, y);
else if (currentAction==Action.Pull)
pullShapeForward(x, y);
else
addShape(pressedX, pressedY, x, y);
} public void mouseClicked(MouseEvent e) {} //needed to satisfy interface
public void mouseEntered(MouseEvent e) {} //needed to satisfy interface
public void mouseExited(MouseEvent e) {} //needed to satisfy interface
// Helper methods for implementing the button and mouse actions
/** Start a new drawing. */
public void newDrawing(){
shapes = new ArrayListShape();
canvas.clear();
}
/** Open a file, and read all the shape descriptions into the current drawing. */
public void openDrawing(){
String fname = FileChooser.open();
if (fname==null) return;
try {
Scanner file = new Scanner(new File(fname));
//System.out.printf("Opening file %s\n", fname);
shapes = new ArrayListShape();
while (file.hasNext()){
String shapetype = file.next().toLowerCase();
if (shapetype.equals("oval"))
shapes.add(new Oval(file));
else if (shapetype.equals("rectangle"))
shapes.add(new Rectangle(file));
if (shapetype.equals("line"))
shapes.add(new Line(file));
if (shapetype.equals("textshape"))
shapes.add(new TextShape(file));
else if (shapetype.equals("triangle"))
shapes.add(new Triangle(file));
else if (shapetype.equals("dot"))
shapes.add(new Dot(file));
}
render();
}
catch(IOException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
} /** Save the current drawing to a file. */
public void saveDrawing(){
String fname =FileChooser.save();
if ( fname == null )
return;
try{
PrintStream f = new PrintStream( new File( fname ));
for ( Shape shape : shapes )
f.println( shape.toString());
f.close ();
}
catch(IOException ex){
System.out.println(ex.getMessage());
ex.printStackTrace();
}
}
/** Returns the shape under the position (x y), or null if no such shape */
public Shape findShape(int x, int y){
for (int i = shapes.size()-1; i=0; i--){ // must go backwards, so can't use foreach
Shape shape = shapes.get(i);
if (shape.pointOnShape(x, y))
return shape;
}
return null; // no shape found at position
}
/** Moves the shape that was under the mousePressed position (pressedX, pressedY)
to where the mouse was released.
Ie, move it by (newX-pressedX) and (newY-pressedY)
*/
public void moveShape(int fromX, int fromY, int toX, int toY){
//System.out.printf("Moving shape under (%d, %d) to (%d, %d)\n", pressedX, pressedY, newX, newY); //for debugging
Shape shape = findShape(fromX, fromY);
if (shape!= null)
shape.moveBy((toX-fromX), (toY-fromY));
render();
} /** Deletes the shape that was under the mouseReleased position (x, y)
*/
public void deleteShape(int x, int y){ for ( Shape shape : shapes) {
if ( shape.pointOnShape(x, y ))
shapes.remove ( shape );
}
render();
}
/** Pull the shape under the mouse one position closer to the "front"
of the drawing */
public void pullShapeForward(int x, int y){
// System.out.printf("Pulling shape under (%d, %d) forward\n", x, y); //for debugging
// YOUR CODE HERE
Shape shape = findShape( x, y );
if (shape!=null ) {
int index = shapes.indexOf(shape);
if ( index shapes.size()-1){
shapes.remove(index);
shapes.add( index+1,shape);
}
render();
}
}
/** Push the shape under the mouse one position further from the "front"
of the drawing */
public void pushShapeBackward(int x, int y){
//System.out.printf("Pushing shape under (%d, %d) backward\n", x, y); //for debugging
// YOUR CODE HERE
Shape shape = findShape(x, y );
if ( shape!=null ){
int index = shapes.indexOf(shape);
if( index 0 )
shapes.remove( index);
shapes.add( index-1, shape);
}
render();
}
/** Reverse the order of the shapes in the drawing */
public void reverseDrawing(){ ListShapetemp = new ArrayListShape();
while ( shapes.size() 0 ) {
temp.add ( shapes.remove(shapes.size()-1));
}
shapes= temp;
render();
}
/** Construct a new Shape object of the appropriate kind (depending on currentAction)
Uses the appropriate constructor of the Line, Rectangle, Oval, TextShape, or Triangle classes.
adds the shape it to the collection of shapes in the drawing, and
renders the shape on the canvas */
public void addShape(int x1, int y1, int x2, int y2){
//System.out.printf("Drawing shape %s, at (%d, %d)-(%d, %d)\n", currentAction, pressedX, pressedY, x, y); //for debugging
Shape shape = null;
if (currentAction==Action.Line)
shapes.add(new Line(x1, y1, x2, y2, currentColor));
if (currentAction==Action.Triangle)
shapes.add(new Triangle(x1, y1, x2, y2, currentColor));
if (currentAction==Action.Dot)
shapes.add(new Dot(x2, y2, currentColor));
else if (currentAction==Action.Text)
shapes.add(new TextShape(x2, y2, textField.getText(), currentColor));
else{
int left= Math.min(x1, x2);
int top= Math.min(y1, y2);
int width= Math.abs(x1 - x2);
int height= Math.abs(y1 - y2);
if (currentAction==Action.Rect)
shapes.add(new Rectangle(left, top, width, height, currentColor));
else if (currentAction==Action.Oval)
shapes.add(new Oval(left, top, width, height, currentColor));
}
render();
} public void render(){
canvas.clear(false);
for (Shape shape : shapes){
shape.render(canvas);
}
canvas.display();
} public static void main(String args[]){
new MiniDraw();
}}
public class test
{
public static void main(String[] args)
{
for(int i=0;i4;i++)
{
for(int n=0;n4-i;n++)
{
System.out.print(" ");
}
for(int j=0;j4+i*2;j++)
{
System.out.print("*");
}
System.out.println();
}
for(int i=3;i0;i--)
{
for(int n=0;n5-i;n++)
{
System.out.print(" ");
}
for(int j=0;ji*2+2;j++)
{
System.out.print("*");
}
System.out.println();
}
}
}
java图形图像——绘制多边形
// 程序:绘制多边形
// 范例文件:DrawPolygon.java
import java.awt.*;
import java.applet.*;
public class DrawPolygon extends Applet {
int X[] = {10,180,90,110,130,50}; //顶点X坐标
int Y[] = {15,55,95,115,135,180}; //顶点Y坐标
public void paint(Graphics g)
{
g.drawPolygon(X,Y,6); //绘制六边形
}
}
drawPolygon()方法使用三个参数,前两个参数为两个坐标点数组,第三个参数为坐标点的个数
1:设置一个boolean变量,响应button事件后,
falg = !falg
if(falg) {
button.setText("click me");
} else {
button.setText("click me again");l
}
2:设置颜色为黄色,当然用你的Grapics,代码如下:
Grapics g = getGrapics;
g.setCloro(Cloro.(黄色,我不知道怎么拼写));
g.drawline(int x,int y,int i,int j) //括号里面有参数,自己查看sdk,我没环境,写不出来。应该是这样!
g.drawline(int x,int y,int i,int j)
g.drawline(int x,int y,int i,int j)
g.drawline(int x,int y,int i,int j)
g.drawline(int x,int y,int i,int j)
g.drawline(int x,int y,int i,int j)
3:也是通过Grapics来画,getGrapics就可以了。
4:没明白你的意思,应该是说获取html里的prarm吧?然后在根据prarm的值设置某些东西吧?
getParamXXX() //xxx忘了怎么写,用IDE就不用记,阴文很烂的。