📄 customworld.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 + -