⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 customworld.java

📁 sun公司开发的,java2核心技术,卷II:高级性能,包括一系列的高级java应用技术,如数据库德连接,高级swing,多线程,软件本地化等等,本文件中则包含该书中的所用实例,配合该书使用,使对ja
💻 JAVA
字号:
/**
 * @version 1.20 1999-07-07
 * @author Cay Horstmann
 */

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
import javax.swing.*;

public class CustomWorld
{  public static void main(String[] args)
   {  JFrame frame = new CustomWorldFrame();
      frame.show();
   }
}

class CustomWorldFrame extends JFrame
{  public CustomWorldFrame()
   {  addWindowListener(new WindowAdapter()
         {  public void windowClosing(WindowEvent e)
            {  System.exit(0);
            }
         } );

      Properties defaultSettings = new Properties();
      defaultSettings.put("FONT", "Monospaced");
      defaultSettings.put("SIZE", "300 200");
      defaultSettings.put("MESSAGE", "Hello, World");
      defaultSettings.put("COLOR", "0 50 50");
      defaultSettings.put("PTSIZE", "12");

      Properties settings = new Properties(defaultSettings);
      try
      {  FileInputStream sf
            = new FileInputStream("CustomWorld.ini");
         settings.load(sf);
      }
      catch (FileNotFoundException e) {}
      catch (IOException e) {}

      StringTokenizer st = new StringTokenizer
         (settings.getProperty("COLOR"));
      int red = Integer.parseInt(st.nextToken());
      int green = Integer.parseInt(st.nextToken());
      int blue = Integer.parseInt(st.nextToken());

      Color foreground = new Color(red, green, blue);

      String name = settings.getProperty("FONT");
      int size = Integer.parseInt(settings.getProperty("PTSIZE"));
      Font f = new Font(name, Font.BOLD, size);

      st = new StringTokenizer(settings.getProperty("SIZE"));
      int hsize = Integer.parseInt(st.nextToken());
      int vsize = Integer.parseInt(st.nextToken());
      setSize(hsize, vsize);
      setTitle(settings.getProperty("MESSAGE"));

      getContentPane().add(new HelloWorldPanel(getTitle(),
         foreground, f), "Center");
   }
}

class HelloWorldPanel extends JPanel
{  public HelloWorldPanel(String aMessage, Color aForeground,
      Font aFont)
   {  message = aMessage;
      foreground = aForeground;
      font = aFont;
   }

   public void paintComponent(Graphics g)
   {  super.paintComponent(g);
      g.setColor(foreground);
      g.setFont(font);

      FontMetrics fm = g.getFontMetrics(font);
      int w = fm.stringWidth(message);

      Dimension d = getSize();
      int cx = (d.width - w) / 2;
      int cy = (d.height + fm.getHeight()) / 2 - fm.getDescent();

      g.drawString(message, cx, cy);
   }

   private Color foreground;
   private Font font;
   private String message;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -