题目来源:大工慕课 链接
作者:Caleb Sung
题目要求
实施一个窗口来显示你的名字,你的ID和你的专业。 窗口应该位于屏幕的中心。
参考代码
窗口类:HelloGUIFrame
class HelloGUIFrame extends JFrame{
public HelloGUIFrame() {
setTitle("Hello GUI");
setSize(300,300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setLocation(screenSize.width / 2 - getSize().width / 2, screenSize.height / 2 - getSize().height / 2);
add (new HelloGUIComponent(), BorderLayout.CENTER);
add(new JButton("Click me!"), BorderLayout.SOUTH);
validate();
}
}
要素类:HelloGUIComponent
class HelloGUIComponent extends JComponent{
public void paintComponent(Graphics g) {
g.setColor(Color.BLUE);
g.drawString("Hello, GUI World!", 50, 30);
g.setColor(Color.RED);
g.drawString("Name: Caleb_Sung", 50, 50);
g.setColor(Color.GREEN);
g.drawString("ID: 20180823", 50, 70);
g.setColor(Color.PINK);
g.drawString("Major: ComputerScience", 50, 90);
g.setColor(Color.ORANGE);
g.drawOval(50, 110, 50, 50);
}
}
imports和主函数
可以看到主函数只有简单的一句话。此外,imports可以由IDE自动补全。
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Toolkit;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class TestHelloGUI {
public static void main(String[] args) {
new HelloGUIFrame();
}
}
运行效果
显而易见这里并没写响应点击按键后的响应事件,这部分内容将在之后的文章后进行描述。