📄 texttest.java
字号:
/**
* @version 1.20 2 Jul 1998
* @author Cay Horstmann
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
class TextTestFrame extends JFrame
implements DocumentListener
{ public TextTestFrame()
{ setTitle("TextTest");
setSize(300, 200);
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
} );
Container contentPane = getContentPane();
JPanel p = new JPanel();
hourField = new JTextField("12", 3);
p.add(hourField);
hourField.getDocument().addDocumentListener(this);
minuteField = new JTextField("00", 3);
p.add(minuteField);
minuteField.getDocument().addDocumentListener(this);
contentPane.add(p, "South");
clock = new ClockPanel();
contentPane.add(clock, "Center");
}
public void insertUpdate(DocumentEvent e)
{ setClock();
}
public void removeUpdate(DocumentEvent e)
{ setClock();
}
public void changedUpdate(DocumentEvent e)
{
}
public void setClock()
{ int hours
= Integer.parseInt(hourField.getText().trim());
int minutes
= Integer.parseInt(minuteField.getText().trim());
clock.setTime(hours, minutes);
}
private JTextField hourField;
private JTextField minuteField;
private ClockPanel clock;
}
class ClockPanel extends JPanel
{ public void paintComponent(Graphics g)
{ super.paintComponent(g);
g.drawOval(0, 0, 100, 100);
double hourAngle
= 2 * Math.PI * (minutes - 3 * 60) / (12 * 60);
double minuteAngle
= 2 * Math.PI * (minutes - 15) / 60;
g.drawLine(50, 50,
50 + (int)(30 * Math.cos(hourAngle)),
50 + (int)(30 * Math.sin(hourAngle)));
g.drawLine(50, 50,
50 + (int)(45 * Math.cos(minuteAngle)),
50 + (int)(45 * Math.sin(minuteAngle)));
}
public void setTime(int h, int m)
{ minutes = h * 60 + m;
repaint();
}
private int minutes = 0;
}
public class TextTest
{ public static void main(String[] args)
{ JFrame frame = new TextTestFrame();
frame.show();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -