AWT/Swing编程题

priestmoon 2009-05-24 08:46:15
题目:添加三个按钮Red, Yellow, Blue,使窗口中央的"Hello world"显示相应的颜色。


import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;

public class HelloWorld {
public static void main(String[] args) {
HelloWorldFrame frame = new HelloWorldFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

class HelloWorldFrame extends JFrame {
public JFrame() {
add(new HelloWorldPanel());
setSize(WIDTH, HEIGHT);
}

private static final int WIDTH = 400;
private static final int HEIGHT = 400;
}

class HelloWorldPanel extends JPanel {
//*******************************

//???????????????????????????????

//*******************************
private static final int leftX = 100;
private static final int topY = 200;
}


...全文
231 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
raymondguo008 2009-05-26
  • 打赏
  • 举报
回复

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ButtonTest {
public static void main(String[] args) {
ButtonFrame frame = new ButtonFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

class ButtonFrame extends JFrame {
public ButtonFrame() {
setTitle("ButtonTest");
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

ButtonPanel panel = new ButtonPanel();
add(panel);
}

public static final int DEFAULT_WIDTH = 300;
public static final int DEFAULT_HEIGHT = 200;
}

class ButtonPanel extends JPanel {
public ButtonPanel() {
JButton yellowButton = new JButton("Yellow");
JButton blueButton = new JButton("Blue");
JButton redButton = new JButton("Red");

add(yellowButton);
add(blueButton);
add(redButton);

ColorAction yellowAction = new ColorAction(Color.YELLOW);
ColorAction blueAction = new ColorAction(Color.BLUE);
ColorAction redAction = new ColorAction(Color.RED);

yellowButton.addActionListener(yellowAction);
blueButton.addActionListener(blueAction);
redButton.addActionListener(redAction);
}

private class ColorAction implements ActionListener {

private Color backgroundColor;

public ColorAction(Color c) {
backgroundColor = c;
}

public void actionPerformed(ActionEvent event) {
setBackground(backgroundColor);
}
}
}
raymondguo008 2009-05-26
  • 打赏
  • 举报
回复
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ButtonTest {
public static void main(String[] args) {
ButtonFrame frame = new ButtonFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

class ButtonFrame extends JFrame {
public ButtonFrame() {
setTitle("ButtonTest");
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

ButtonPanel panel = new ButtonPanel();
add(panel);
}

public static final int DEFAULT_WIDTH = 300;
public static final int DEFAULT_HEIGHT = 200;
}

class ButtonPanel extends JPanel {
public ButtonPanel() {
JButton yellowButton = new JButton("Yellow");
JButton blueButton = new JButton("Blue");
JButton redButton = new JButton("Red");

add(yellowButton);
add(blueButton);
add(redButton);

ColorAction yellowAction = new ColorAction(Color.YELLOW);
ColorAction blueAction = new ColorAction(Color.BLUE);
ColorAction redAction = new ColorAction(Color.RED);

yellowButton.addActionListener(yellowAction);
blueButton.addActionListener(blueAction);
redButton.addActionListener(redAction);
}

private class ColorAction implements ActionListener {

private Color backgroundColor;

public ColorAction(Color c) {
backgroundColor = c;
}

public void actionPerformed(ActionEvent event) {
setBackground(backgroundColor);
}
}
}
priestmoon 2009-05-26
  • 打赏
  • 举报
回复
runshine && gentalguo
Good!
gentalguo 2009-05-26
  • 打赏
  • 举报
回复
从你所定义的变量,我猜测也许你是这样的意图。
简单写了一点。恩,你是说panel里面不要标签,直接写字吧?
你看一下代码,如果还不是你要的,那么描述的再详细一些。


import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class HelloWorld {
public static void main(String[] args) {
HelloWorldFrame frame = new HelloWorldFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

class HelloWorldFrame extends JFrame {
public HelloWorldFrame() {
add(new HelloWorldPanel());
setSize(WIDTH, HEIGHT);
}

private static final int WIDTH = 400;
private static final int HEIGHT = 400;
}

class HelloWorldPanel extends JPanel {
private Color color = Color.WHITE;

public HelloWorldPanel() {
setLayout(new FlowLayout());
JButton redButton = new JButton("Red");
JButton yellowButton = new JButton("Yellow");
JButton blueButton = new JButton("Blue");
add(redButton);
add(yellowButton);
add(blueButton);

redButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
color = Color.red;
repaint();
}
});
yellowButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
color = Color.YELLOW;
repaint();
}
});
blueButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
color = Color.BLUE;
repaint();
}
});
}

@Override
public void paint(Graphics g) {
super.paint(g);
g.setColor(color);
g.drawString("HelloWorld", leftX, topY);
}

private static final int leftX = 100;
private static final int topY = 200;
}
runshine 2009-05-25
  • 打赏
  • 举报
回复

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;

public class HelloWorld {
public static void main(String[] args) {
HelloWorldFrame frame = new HelloWorldFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

class HelloWorldFrame extends JFrame {
public HelloWorldFrame() {
add(new HelloWorldPanel());
setSize(WIDTH, HEIGHT);
}

private static final int WIDTH = 400;
private static final int HEIGHT = 400;
}

class HelloWorldPanel extends JPanel implements ActionListener
{
JPanel p=new JPanel();
JButton r,b,y;
JLabel l;
public HelloWorldPanel()
{
l=new JLabel("Hello world!");
r=new JButton("Red");
y=new JButton("Yellow");
b=new JButton("Blue");
r.addActionListener(this);
b.addActionListener(this);
y.addActionListener(this);

p.add(r);
p.add(y);
p.add(b);

add(l,BorderLayout.CENTER);
add(p,BorderLayout.SOUTH);
setSize(leftX,topY);
this.setVisible(true);
}
private static final int leftX = 100;
private static final int topY = 200;

public void actionPerformed(java.awt.event.ActionEvent e)
{
if(e.getSource()==r){
l.setForeground(Color.red);
}
if(e.getSource()==b){
l.setForeground(Color.blue);
}
if(e.getSource()==y){
l.setForeground(Color.yellow);
}
}
}

priestmoon 2009-05-25
  • 打赏
  • 举报
回复
楼上的代码是让显示"Hello World"的Label所在的矩形范围的背景颜色变色。
如果要让"Hello World"本身的字体颜色改变,应该怎么写?
goodmrning 2009-05-24
  • 打赏
  • 举报
回复
class HelloWorldPanel extends JPanel impletments ActionListener{
JPanel p=new JPanel();
JButton r,b,y;
JLabel l;
l=new JLable("Hello world!");
r=new JButton("Red");
y=new JButton("Yellow");
b=new JButton("Blue");
p.add(r);
p.add(y);
p.add(b);
r.addActionListener(this);
b.addActionListener(this);
y.addActionListener(this);
getContentPane.add(l,BorderLayout.CENTER);
getContentPane.add(p,BorderLayout.SOUTH);
setSize(leftX,topY);
setVisiable(true);

private static final int leftX = 100;
private static final int topY = 200;
public void actionperformed(ActionEvent e){
if(e.getSource==r){
l.setbackground(Color.red);
}
if(e.getSource==b){
l.setbackground(Color.blue);
}
if(e.getSource==y){
l.setbackground(Color.yellow);
}
}
priestmoon 2009-05-24
  • 打赏
  • 举报
回复
怎么没人做?
这道题很难吗?
架子都搭好了,只要填几行关键代码就行了啊。
priestmoon 2009-05-24
  • 打赏
  • 举报
回复
代码中有错误,修改如下:

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;

public class HelloWorld {
public static void main(String[] args) {
HelloWorldFrame frame = new HelloWorldFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

class HelloWorldFrame extends JFrame {
public HelloWorldFrame() {
add(new HelloWorldPanel());
setSize(WIDTH, HEIGHT);
}

private static final int WIDTH = 400;
private static final int HEIGHT = 400;
}

class HelloWorldPanel extends JPanel {
//*******************************

//???????????????????????????????

//*******************************
private static final int leftX = 100;
private static final int topY = 200;
}
完整全套资源下载地址:https://download.csdn.net/download/qq_27595745/71331017 【完整课程列表】 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_01 Java概述与应用 Eclipse 集成环境使用 (共16页).ppt 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_01 Java概述与应用 Eclipse+MyEclipse+Tomcat安装(第1章) (共20页).ppt 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_01 Java概述与应用 JAVA_01Java概述与应用 (共89页).ppt 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_01 Java概述与应用 前言 学习java前的准备工作 (共4页).ppt 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_02 面向对象(OO)程序设计概念 (共51页).PPT 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_03 JAVA语言基础 位运算(共21页).ppt 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_03 JAVA语言基础(共57页).ppt 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_04 Java面向对象特性(共41页).ppt 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_05 高级语言特征(共65页).ppt 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_06 异常处理Exceptions(共31页).ppt 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_07 IO输入输出(共30页).ppt 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_08 AWT图形界面编程 JFC AWT Swing(共56页).ppt 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_08 AWT图形界面编程 JFC Swing (共22页).ppt 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_09 Applet (共33页).ppt 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_10 线程(共51页).ppt 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_11 网络程序设计(共26页).ppt 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_12 JFC Swing (共20页).ppt 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_13 JDBC(共15页).ppt 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_13 JDBC编程(共31页).ppt JAVA_01Java概述与应用\God.java JAVA_01Java概述与应用\Human.java JAVA_01Java概述与应用\javaapplet.html JAVA_01Java概述与应用\WelcomeJava.java JAVA_01Java概述与应用\WelcomeJavaApplet.java JAVA_10线程\第十章上机练习题.doc JAVA_11网络程序设计\第11章上机练习题.doc JAVA_11网络程序设计\邮件发送源码.rar JAVA_12 Swing\SwingTest.java JAVA_13 JDBC\Connec.java JAVA_13 JDBC\mysql-5.5.11-win32(1).msi JAVA_13 JDBC\SQLyog832Trial.exe JAVA_13 JDBC\SQLyog832Trial.zip JAVA_13 JDBC\实训项目——Java电子小字典.doc JAVA_2面向对象(OO)程序设计概念\Animal(Polymorphism).java JAVA_2面向对象(OO)程序设计概念\Animal(super).java JAVA_2面向对象(OO)程序设计概念\Animal.class JAVA_2面向对象(OO)程序设计概念\Animal.java JAVA_2面向对象(OO)程序设计概念\Fish.class JAVA_2面向对象(OO)程序设计概念\Integration.class JAVA_2面向对象(OO)程序设计概念\Point.java JAVA_2面向对象(OO)程序设计概念\第二章上机练习题.doc JAVA_3JAVA语言基础\StringTest.java JAVA_3JAVA语言基础\Test.java JAVA_3JAVA语言基础\Welcome.java JAVA_3JAVA语言基础\第三章上机练习题.doc JAVA_4Java面向对象特性\Animal(Poly
★ 第一讲 Java语言概述 ◇课前索引 ◇1.1 java语言的发展史 ◇1.2 java的工作原理 ◇1.3 一切都是对象 ◇1.4 构建java程序 ◇1.5 java程序规范 ◇1.6 建立java开发环境 ◇本讲小结 ◇课后习题 ★ 第二讲 Java语言基础知识 ◇课前索引 ◇2.1 简单数据类型 ◇2.2 运算符和表达式 ◇2.3 控制语句 ◇2.4 数组 ◇2.5 字符串的处理 ◇本讲小结 ◇课后习题 ★ 第三讲 Java语言中的面向对象特性 ◇课前索引 ◇3.1 面向对象技术基础 ◇3.2 Java语言的面向对象特性 ◇本讲小结 ◇课后习题 ★ 第四讲 Java的例外处理和I/O流 ◇课前索引 ◇4.1 什么是例外 ◇4.2 例外的处理 ◇4.3 自定义例外类的使用 ◇4.4 I/O 流概述 ◇4.5 文件处理 ◇4.6 过滤流 ◇4.7 字符流的处理 ◇4.8 对象的串行化 ◇4.9 其它常用的流 ◇本讲小结 ◇课后习题 ★ 第五讲 AWT图形用户界面设计 ◇课前索引 ◇5.1 用AWT生成图形化用户界面 ◇5.2 AWT事件处理模型 ◇5.3 AWT组件库 ◇本讲小结 ◇课后习题 ★ 第六讲 Java的线程和Java Applet ◇课前索引 ◇6.1 线程简介 ◇6.2 多线程的互斥与同步 ◇6.3 Java Applet ◇本讲小结 ◇课后习题 ★ 第七讲 Swing用户界面设计 ◇课前索引 ◇7.1 Swing简介 ◇7.2 Swing组件和容器 ◇本讲小结 ◇课后习题 ★ 第八讲 Java网络编程 ◇课前索引 ◇8.1 网络编程基本概念,TCP/IP协议简介 ◇8.2 基于URL的高层次Java网络编程 ◇8.3 基于Socket的低层次Java网络编程 ◇本讲小结 ◇课后习题 ★ 第九讲 JavaBean和RMI ◇课前索引 ◇9.1 JavaBean的基本概念 ◇9.2 JavaBean开发简介 ◇9.3 RMI的基本概念和编程简介 ◇9.4 EJB简介 ◇本讲小结 ◇课后习题 ★ 第十讲 JSP与Servlet ◇课前索引 ◇10.1 Servlet的概念、配置与运行 ◇10.2 Servlet的应用实例 ◇10.3 JSP简介 ◇10.4 JSP和Servlet的结合使用 ◇本讲小结 ◇课后习题

62,615

社区成员

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

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