import java.awt.*;
import java.awt.event.*;
import java.util.Calendar;
import java.util.GregorianCalendar;import javax.swing.*;
public class AlarmClock {
public static void main(String[]args){
EventQueue.invokeLater(new Runnable(){
public void run(){
AlarmFrame f=new AlarmFrame();
f.setDefaultCloseOperation(JFrame .EXIT_ON_CLOSE);
f.setVisible(true);
}
});
}
}
@SuppressWarnings("serial")
class AlarmFrame extends JFrame implements Runnable {
Thread clock;
public AlarmFrame(){
setTitle("AlarmClock");
setSize(255,100);
setFont(new Font("Times New Roman",Font.BOLD,60));
start();
JMenu switchMenu=new JMenu("开关设置");
switchMenu.add(new TestAction("开"));
switchMenu.add(new TestAction("关"));
JMenu timeMenu=new JMenu("闹铃设置");
timeMenu.add(new TestAction("闹铃时间"));
JMenu stopMenu=new JMenu("停止闹铃");
stopMenu.add(new TestAction("stop"));
JMenuBar menuBar=new JMenuBar();
setJMenuBar(menuBar);
menuBar.add(switchMenu);
menuBar.add(timeMenu);
menuBar.add(stopMenu);
}
public void start(){
if (clock==null){
clock=new Thread(this);
clock.start();
}
}
public void run(){
while(clock!=null){
repaint();
try{
Thread.sleep(1000);
}
catch(InterruptedException ex){
ex.printStackTrace();
}
}
}
public void stop(){
clock=null;
}
public void paint(Graphics g){
//Graphics2D g2=(Graphics2D g){
Calendar now=new GregorianCalendar();
String timeInfo="";
int hour=now.get(Calendar.HOUR_OF_DAY);
int minute=now.get(Calendar.MINUTE);
int second=now.get(Calendar.SECOND);
if (hour<=9)
timeInfo+="0"+hour+":";
else
timeInfo+=hour+":";
if (minute<=9)
timeInfo+="0"+minute+":";
else
timeInfo+=minute+":";
if (second<=9)
timeInfo+="0"+second;
else
timeInfo+=second;
g.setColor(Color.white);
Dimension dim=getSize();
g.fillRect(0,0,dim.width,dim.height);
g.setColor(Color.orange);
g.drawString(timeInfo,20,80);
}
}
@SuppressWarnings("serial")
class TestAction extends AbstractAction{
public TestAction(String name){
super(name);
}
public void actionPerformed(ActionEvent e){
System.out.println(getValue(Action.NAME)+"selected.");
}
}
以上代码段最终目的是想要时间显示示跟菜单显示,但执行却只有时间显示,删除时间显示示部分才能显示示菜单部分,怎样才能使两者都显示呢?在下初学,请各位的指教,谢谢……
import java.awt.event.*;
import java.util.Calendar;
import java.util.GregorianCalendar;import javax.swing.*;
public class AlarmClock {
public static void main(String[]args){
EventQueue.invokeLater(new Runnable(){
public void run(){
AlarmFrame f=new AlarmFrame();
f.setDefaultCloseOperation(JFrame .EXIT_ON_CLOSE);
f.setVisible(true);
}
});
}
}
@SuppressWarnings("serial")
class AlarmFrame extends JFrame implements Runnable {
Thread clock;
public AlarmFrame(){
setTitle("AlarmClock");
setSize(255,100);
setFont(new Font("Times New Roman",Font.BOLD,60));
start();
JMenu switchMenu=new JMenu("开关设置");
switchMenu.add(new TestAction("开"));
switchMenu.add(new TestAction("关"));
JMenu timeMenu=new JMenu("闹铃设置");
timeMenu.add(new TestAction("闹铃时间"));
JMenu stopMenu=new JMenu("停止闹铃");
stopMenu.add(new TestAction("stop"));
JMenuBar menuBar=new JMenuBar();
setJMenuBar(menuBar);
menuBar.add(switchMenu);
menuBar.add(timeMenu);
menuBar.add(stopMenu);
}
public void start(){
if (clock==null){
clock=new Thread(this);
clock.start();
}
}
public void run(){
while(clock!=null){
repaint();
try{
Thread.sleep(1000);
}
catch(InterruptedException ex){
ex.printStackTrace();
}
}
}
public void stop(){
clock=null;
}
public void paint(Graphics g){
//Graphics2D g2=(Graphics2D g){
Calendar now=new GregorianCalendar();
String timeInfo="";
int hour=now.get(Calendar.HOUR_OF_DAY);
int minute=now.get(Calendar.MINUTE);
int second=now.get(Calendar.SECOND);
if (hour<=9)
timeInfo+="0"+hour+":";
else
timeInfo+=hour+":";
if (minute<=9)
timeInfo+="0"+minute+":";
else
timeInfo+=minute+":";
if (second<=9)
timeInfo+="0"+second;
else
timeInfo+=second;
g.setColor(Color.white);
Dimension dim=getSize();
g.fillRect(0,0,dim.width,dim.height);
g.setColor(Color.orange);
g.drawString(timeInfo,20,80);
}
}
@SuppressWarnings("serial")
class TestAction extends AbstractAction{
public TestAction(String name){
super(name);
}
public void actionPerformed(ActionEvent e){
System.out.println(getValue(Action.NAME)+"selected.");
}
}
以上代码段最终目的是想要时间显示示跟菜单显示,但执行却只有时间显示,删除时间显示示部分才能显示示菜单部分,怎样才能使两者都显示呢?在下初学,请各位的指教,谢谢……
import java.awt.event.*;
import java.util.Calendar;
import java.util.GregorianCalendar;import javax.swing.*;public class AlarmClock {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
AlarmFrame f = new AlarmFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
});
}
}@SuppressWarnings("serial")
class AlarmFrame extends JFrame implements Runnable {
Thread clock; public AlarmFrame() {
setTitle("AlarmClock");
setSize(255, 100);
setFont(new Font("Times New Roman", Font.BOLD, 60));
start();
Menu switchMenu = new Menu("开关设置");
switchMenu.add(new MenuItem("开"));
switchMenu.add(new MenuItem("关"));
Menu timeMenu = new Menu("闹铃设置");
timeMenu.add(new MenuItem("闹铃时间"));
Menu stopMenu = new Menu("停止闹铃");
stopMenu.add(new MenuItem("stop"));
MenuBar menuBar = new MenuBar();
setMenuBar(menuBar);
menuBar.add(switchMenu);
menuBar.add(timeMenu);
menuBar.add(stopMenu);
} public void start() {
if (clock == null) {
clock = new Thread(this);
clock.start();
}
} public void run() {
while (clock != null) {
repaint();
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
} public void stop() {
clock = null;
} public void paint(Graphics g) {
// Graphics2D g2=(Graphics2D g){
Calendar now = new GregorianCalendar();
String timeInfo = "";
int hour = now.get(Calendar.HOUR_OF_DAY);
int minute = now.get(Calendar.MINUTE);
int second = now.get(Calendar.SECOND); if (hour <= 9)
timeInfo += "0" + hour + ":";
else
timeInfo += hour + ":";
if (minute <= 9)
timeInfo += "0" + minute + ":";
else
timeInfo += minute + ":";
if (second <= 9)
timeInfo += "0" + second;
else
timeInfo += second; g.setColor(Color.white);
Dimension dim = getSize();
g.fillRect(0, 0, dim.width, dim.height);
g.setColor(Color.orange);
g.drawString(timeInfo, 20, 80); }
}@SuppressWarnings("serial")
class TestAction extends AbstractAction {
public TestAction(String name) {
super(name);
} public void actionPerformed(ActionEvent e) {
System.out.println(getValue(Action.NAME) + "selected.");
}
}
用Font对象填充字体
import java.awt.*;
import java.awt.event.*;
import java.util.Calendar;
import java.util.GregorianCalendar;import javax.swing.*;public class AlarmClock {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
AlarmFrame f = new AlarmFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
});
}
}//@SuppressWarnings("serial")
class AlarmFrame extends JFrame implements Runnable {
Thread clock; public AlarmFrame() {
setTitle("AlarmClock");
setSize(255, 100);
setFont(new Font("Times New Roman", Font.BOLD, 60));
start();
Menu switchMenu = new Menu("开关设置");
switchMenu.add(new MenuItem("开"));
switchMenu.add(new MenuItem("关"));
Menu timeMenu = new Menu("闹铃设置");
timeMenu.add(new MenuItem("闹铃时间"));
Menu stopMenu = new Menu("停止闹铃");
stopMenu.add(new MenuItem("stop"));
MenuBar menuBar = new MenuBar();
menuBar.setFont(new Font("Times New Roman", Font.BOLD, 12));
setMenuBar(menuBar);
menuBar.add(switchMenu);
menuBar.add(timeMenu);
menuBar.add(stopMenu);
} public void start() {
if (clock == null) {
clock = new Thread(this);
clock.start();
}
} public void run() {
while (clock != null) {
repaint();
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
} public void stop() {
clock = null;
} public void paint(Graphics g) {
// Graphics2D g2=(Graphics2D g){
Calendar now = new GregorianCalendar();
String timeInfo = "";
int hour = now.get(Calendar.HOUR_OF_DAY);
int minute = now.get(Calendar.MINUTE);
int second = now.get(Calendar.SECOND); if (hour <= 9)
timeInfo += "0" + hour + ":";
else
timeInfo += hour + ":";
if (minute <= 9)
timeInfo += "0" + minute + ":";
else
timeInfo += minute + ":";
if (second <= 9)
timeInfo += "0" + second;
else
timeInfo += second; g.setColor(Color.white);
Dimension dim = getSize();
g.fillRect(0, 0, dim.width, dim.height);
g.setColor(Color.orange);
g.drawString(timeInfo, 20, 80); }
}//@SuppressWarnings("serial")
class TestAction extends AbstractAction {
public TestAction(String name) {
super(name);
} public void actionPerformed(ActionEvent e) {
System.out.println(getValue(Action.NAME) + "selected.");
}
}