时间和菜单显示问题

kelly0924 2009-11-08 01:57:37
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.");
}
}


以上代码段最终目的是想要时间显示示跟菜单显示,但执行却只有时间显示,删除时间显示示部分才能显示示菜单部分,怎样才能使两者都显示呢?在下初学,请各位的指教,谢谢……
...全文
147 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanwan 2009-11-10
  • 打赏
  • 举报
回复

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.");
}
}


zhuyang7654321 2009-11-10
  • 打赏
  • 举报
回复
看到长代码头就晕
dajiadebeibei9 2009-11-10
  • 打赏
  • 举报
回复
设置Font
用Font对象填充字体
kelly0924 2009-11-10
  • 打赏
  • 举报
回复
谢谢,但弹出来的子菜单字体怎么变大了呢,怎样让子菜单字体变小??
amdgaming 2009-11-08
  • 打赏
  • 举报
回复
给你 改了下, 关键 原因 是挡住了,呵呵 换个 重量级awt 就ok了

package com.kangta;

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();
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.");
}
}

kelly0924 2009-11-08
  • 打赏
  • 举报
回复
高手帮忙看一下嘛,感激不尽……

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧