请问一下如何能在java中根据给定的坐标,长宽,画出矩形,这个矩形是由*号或其他符号拼成的。如下面的格式
- *
- *
- *
- * * * * * * * * * * * *
我用先拼成字符串形式,然后调用drawString()方法,只能打印出一行,无法识别出换行。不知道该用什么方法解决?
[code="java"]
package assignment.task1;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Window {
private int numberOfRows;
private int numberOfColumns;
private char borderCharacter;
Frame f = new Frame("Drawing");
Window(int numberOfRows,int numberOfColumns,char borderCharacter){
this.numberOfRows=numberOfRows;
this.numberOfColumns=numberOfColumns;
this.borderCharacter=borderCharacter;
}
public void addShape(Object obj) {
}
public void removeShape(){
}
public void display(){
MyCanvas p = new MyCanvas();
WL wl = new WL();
String str = drawWin().toString();
p.getWin(str);
System.out.println(str);
f.add(p);
f.setSize(600,400);
f.setVisible(true);
f.addWindowListener(wl);
}
public StringBuffer drawWin(){
StringBuffer str=new StringBuffer();
int m =numberOfRows;
int n =numberOfColumns;
for(int i=0;i<=m;i++){
for(int j=0;j<=n;j++){
if(i==0){
str.append(borderCharacter+" ");
}else if(i>0 && i<m){
if(j==0 || j==n){
str.append(borderCharacter+" ");
}else{
str.append(" ");
}
}else if(i==m){
str.append(borderCharacter+" ");
}
}
str.append("\n");
}
return str;
}
class WL extends WindowAdapter{
public void windowClosing(WindowEvent e){
f.setVisible(false);
}
}
}
class MyCanvas extends Canvas{
String win;
public void getWin(String str){
this.win = str;
}
public void paint(Graphics g){
String s = win;
g.drawString(s,10,20);
}
}
[/code]