2

我必须制作一个小程序来显示它自己的源代码。这就是我所拥有的:

 //Reference the required Java libraries
 import java.applet.Applet; 
 import java.awt.*; 

 //The applet code
 public class FirstApplet extends Applet {

     public void paint(Graphics g) {

       //Draw a rectangle width=250, height=100
       g.drawRect(0,0,250,600); 

       //Set the color to blue
       g.setColor(Color.blue); 

       //Write the message to the web page
       g.drawString("\n //Reference the required Java libraries\n import java.applet.Applet;\n import java.awt.*; \n //The applet code\n public class FirstApplet extends Applet {\n     public void paint(Graphics g) {\n       //Draw a rectangle width=250, height=100\n      g.drawRect(0,0,250,100); \n       //Set the color to blue\n       g.setColor(Color.blue); \n       //Write the message to the web page\n       g.drawString",10,50); 
    }
 } 

但是, \n 没有换行。我的文字水平继续,直到完成。我将如何在 g.drawString 字段中创建新行?

4

2 回答 2

0

也许你可以尝试这样的事情(未经测试):

public static void draw(final Graphics g, final int startX, final int startY, final String... lines){
    final FontMetrics metrics = g.getFontMetrics();
    final int spacing = metrics.getHeight() + metrics.getMaxDescent();
    draw(g, startX, startY, spacing, lines);
}

public static void draw(final Graphics g, final int startX, final int startY, final int vSpacing, final String... lines){
    int y = startY;
    for(final String line : lines){
        g.drawString(line, startX, y);
        y += vSpacing;
    }
}

第一种方法将计算高度(基于对象当前的高度和下降FontGraphics。第二种方法允许您输入自定义垂直间距值以获得更多可定制性。

于 2013-10-29T15:00:30.223 回答
0

我必须制作一个小程序来显示它自己的源代码。

两种选择:

  1. 用于AppletContext.showDocument(URL)浏览到源文件。
  2. 使用JTextAreawithJTextComponent.read(Reader,Object)来读取源代码。

顺便提一句

  1. 为什么要编写小程序?如果是由于规范。老师,请参考为什么 CS 老师应该停止教授 Java 小程序
  2. 为什么选择 AWT 而不是 Swing?出于许多放弃使用 AWT 组件的充分理由,请参阅这个关于Swing extras over AWT的答案。如果您需要支持较旧的基于 AWT 的 API,请参阅混合重量级和轻量级组件
于 2013-10-29T22:17:47.613 回答