开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (2)
master
Course.Resource
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
项目仓库所选许可证以仓库主分支所使用许可证为准
master
分支 (2)
master
Course.Resource
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (2)
master
Course.Resource
MyPanel.java 3.92 KB
一键复制 编辑 原始数据 按行查看 历史
Allan 提交于 2017年09月24日 11:48 +08:00 . add textbook codes
//(1)引入项目所需要的包:
package test;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//(2)构造图形界面,首先继承JFrame,声明界面组成部分的组件,关于界面的构造在MyPanel的构造方法中完成;
//定义一个框架类,并实现动作事件和项目事件的监听器
public class MyPanel extends JFrame implements ActionListener,ItemListener
{
//定义三个菜单项
private JMenuItem jmiClear,jmiExit,jmiEraser;
//定义三个单选按钮菜单项
private JRadioButtonMenuItem jrbmiBlue,jrbmiYellow,jrbmiRed;
Color c=new Color(255,0,0);
int x,y;
int con=3;
int clear=0;
MyPanel2 p1;
//构造方法
public MyPanel()
{ this.setTitle("我的小小画板");
//创建一个菜单栏
JMenuBar jmb = new JMenuBar();
//将菜单栏添加到框架上
setJMenuBar(jmb);
//创建两个菜单
JMenu fileMenu = new JMenu("清除方式", false);
JMenu OptionMenu = new JMenu("选择画笔", true);
//将两个菜单添加到菜单栏上
jmb.add(fileMenu);
jmb.add(OptionMenu);
//在"文件"菜单中添加菜单项
fileMenu.add(jmiEraser=new JMenuItem("橡皮"));
fileMenu.add(jmiClear = new JMenuItem("清除"));
fileMenu.addSeparator();//在菜单中添加一条分隔线
fileMenu.add(jmiExit = new JMenuItem("退出"));
//创建子菜单,并添加到选项菜单中
JMenu colorSubMenu=new JMenu("颜色");
OptionMenu.add(colorSubMenu);
colorSubMenu.add(jrbmiBlue=new JRadioButtonMenuItem("蓝色"));
colorSubMenu.add(jrbmiYellow=new JRadioButtonMenuItem("绿色"));
colorSubMenu.add(jrbmiRed=new JRadioButtonMenuItem("红色"));
//为单选按钮菜单项分组
ButtonGroup btg=new ButtonGroup();
btg.add(jrbmiBlue);
btg.add(jrbmiYellow);
btg.add(jrbmiRed);
p1=new MyPanel2();
this.getContentPane().add(p1,BorderLayout.CENTER);
jmiEraser.addActionListener(this);
jmiClear.addActionListener(this);
jmiExit.addActionListener(this);
//为单选按钮菜单项注册项目事件的监听器
jrbmiBlue.addItemListener(this);
jrbmiYellow.addItemListener(this);
jrbmiRed.addItemListener(this);
}
//(3)添加动作事件,在类MyPanel后面实现动作事件对应的接口implements ActionListener,在MyPanel中实现动作事件对应的方法actionPerformed(ActionEvent e),具体的实现如下:
// 动作事件的事件处理方法
public void actionPerformed(ActionEvent e)
{ Graphics g=getGraphics();
if(e.getSource()==jmiEraser)
c=getBackground();
else if(e.getSource()==jmiClear)
clear=1;
else if(e.getSource()==jmiExit)
System.exit(0);
}
//(4)添加动作事件,在类MyPanel后面实现项目事件对应的接口implements ItemListener,在MyPanel中实现动作事件对应的方法itemStateChanged(ItemEvent e),具体的实现如下:
//项目事件的事件处理方法
public void itemStateChanged(ItemEvent e)
{
if(e.getSource() instanceof JRadioButtonMenuItem)
{
if(jrbmiBlue.isSelected())
c=new Color(0,0,255);
if(jrbmiYellow.isSelected())
c=new Color(0,255,0);
if(jrbmiRed.isSelected())
c=new Color(255,0,0);
}
}
(5)为添加鼠标事件,以内部类的形式实现鼠标事件对应的接口MouseMotionListener,并实现事件对应的方法,具体的实现如下:
class MyPanel2 extends JPanel implements MouseMotionListener
{
public MyPanel2()
{
this.addMouseMotionListener(this);
}
//鼠标事件处理方法,当拖动鼠标时调用
public void mouseDragged(MouseEvent e)
{
//获取图形设备
Graphics g=getGraphics();
if (c==getBackground())
{
g.setColor(getBackground());
g.fillOval(e.getX() - (20/2),e.getY() - (20/2), 20, 20);
}
else
{
g.setColor(c);
//g.drawLine(lineStart.x, lineStart.y,e.getX(), e.getY());
x=(int)e.getX();
y=(int)e.getY();
g.fillOval(x,y,con,con);
//lineStart.move(e.getX(), e.getY());
}
if(clear==1)
{ g.clearRect(0,0,getSize().width,getSize().height);
clear=0;
}
//释放图形设备
g.dispose();
}
//鼠标事件处理方法,当移动鼠标时调用
public void mouseMoved(MouseEvent e)
{
}
}
//(6)在main方法中创建MyPanel,使其可见,设置关闭方法等。
//main方法
public static void main(String[] args)
{
MyPanel frame = new MyPanel();
frame.setSize(500,300);
frame.setDefaultCloseOperation(3);
frame.setVisible(true);
}
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/OOAD2017/Java.Programming.git
git@gitee.com:OOAD2017/Java.Programming.git
OOAD2017
Java.Programming
Java.Programming
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /