类内部属性的改变会使这个类不同属性值商品类型吗

怎么设计一个类,能够监视这个类的任何属性是否被修改过(不需要修改所有属性的set函数的情况下)
[问题点数:40分,结帖人tangqiaojie]
怎么设计一个类,能够监视这个类的任何属性是否被修改过(不需要修改所有属性的set函数的情况下)
[问题点数:40分,结帖人tangqiaojie]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关推荐:
2012年12月 .NET技术大版内专家分月排行榜第三
2012年12月 .NET技术大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。Java继承后能通过子类创建的对象修改父类里面的属性吗?_百度知道
Java继承后能通过子类创建的对象修改父类里面的属性吗?
提问者采纳
能不能贴出代码,说明你想要的结果,继承分好多种的,父类类型也有好多种,属性也分好多种的package com.public class Test1 { private int t1 = 1; public int getT1() {
return t1; } public void setT1(int t1) {
this.t1 = t1; } }package com.public class Test2 extends Test1 { public static void main(String[] args) {
Test1 t = new Test2();
t.setT1(3);
System.out.println(t.getClass());
System.out.println(t.getT1()); }}控制台:class com.test.Test23
提问者评价
太给力了,你的回答完美的解决了我的问题!
其他类似问题
为您推荐:
java继承的相关知识
其他1条回答
不可以的,子类无法修改父类里的属性
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁我的目的是想在点击下面ColorPanel中的选择字体还有字体大小的时候能够在中间画图面板上写出相应的字体,可是一直出错
而且如果把draw的改变放在外面的时候每次改变之后画板面都会自动清空
很多无用的代码我都省去了
呵呵
谢谢
//显示窗口的
public class Drawmain extends JFrame{
&&&&& public static void main(String [] args){
&&&
& Drawmain draw = new Drawmain();
&&&
& draw.showFrame();
&&&&& }
&&&& public void showFrame(){
&&&
this.setTitle("画板");
&&&
this.setSize(new Dimension (800,650));
&&&
this.setDefaultCloseOperation(3);
&&&
this.setLocationRelativeTo(null);
&&&&&&&& /**
&&&
& * 实例化中间的画图面板
&&&
DrawPanel draws = new DrawPanel();
&&&
this.add(draws,BorderLayout.CENTER);
& * 实例化工具栏并添加到窗体
&&&
ToolPanel tool = new ToolPanel(draws);
&&&
this.add(tool, BorderLayout.WEST);
& * 实例化调色栏对象并添加到窗体
&&&
ColorPanel color = new ColorPanel(draws);
&&&
this.add(color,BorderLayout.SOUTH);
//设置窗体可见
&&&
this.setVisible(true);
& * 实例化监听器并在添加在画图面板上
&&&
//获取画图面板上的画布对象
Graphics g = draws.getGraphics();
&&&
DrawListener listener = new DrawListener(g,tool,color,draws);
&&&
draws.addMouseListener(listener);
&&&
draws.addMouseMotionListener(listener);
&&&& }
**************************************************************************************************
//设置工具栏
public class ToolPanel extends JPanel{
& JPanel panel = new JPanel();
&&&& public ToolPanel(){
this.setLayout(new FlowLayout(FlowLayout.LEADING));
/**
* ************************&&&&& 事件监听匿名内部类&&&&&&&&&&&&&&& **********************************
*/
&&&& ActionListener but = new ActionListener(){
&&&&&& /**
&&&&&&& * 按钮事件处理者的处理方法
&&&&&&& */
public void actionPerformed(ActionEvent e) {
//获取按钮上方的密令
tool = e.getActionCommand();
&&&& };
*********************************************************************************************
&
JButton button = new JButton(“word”);
&&&&&&&&&&&&& //添加监听密令
&&&
button.setActionCommand(tools[i]);
&&&
//添加监听器并绑定事件处理类对象
&&&
button.addActionListener(“word”);
&&&
this.add(button);
& }
************************************************************************************************
//画图的面板
import java.awt.C
import java.awt.F
import javax.swing.JP
public class DrawPanel extends JPanel{
&&&&&& /**
&&&&&&& * 定义构造函数
&&&&&&& */
public DrawPanel(){
this.setBackground(Color.WHITE);
}
*******************************************************************************************…***********
//颜色面板
问题就在这里面
* 颜色栏类继承自JPnanel
* @author 暗夜魅影
*/
public class ColorPanel extends JPanel{
// 定义一个字体属性并附初值
static String word = "华文行楷";
* 定义字体的返回方法
public& String getWord(){
// 定义一个粗细属性并附初值
static int wide = 1;
* 定义粗细的返回方法
public& int getWide(){
// 定义一个大小属性并附初值
static int big = 25;
* 定义大小的返回方法
public& int getBig(){
}
& public ColorPanel(DrawPanel draw){
&&&
this.draw =
//设置为流式布局并靠左显示
&&&
this.setLayout(new FlowLayout(FlowLayout.LEFT));
&&&
//设置颜色板的背景色
this.setBackground(Color.GRAY);
&& JPanel panel2 = new JPanel();
&&&
&&&&& panel2.setBackground(Color.gray);
&&&
&&&&& panel2.setPreferredSize(new Dimension(250, 65));
&&&
&&&&& panel2.setLayout(new FlowLayout(FlowLayout.LEFT));
&&&
&&&&& String words [] = {"华文行楷","黑体","宋体","华文隶书","新宋体","幼圆","华文彩云","华文楷体","华文琥珀",
&&&
& "微软雅黑","方正舒体","方正姚体"};
&&&
&&&&& String [] wides = {"1","0"};
&&&
&&&&& String bigs [] = {"25","10","13","15","17","19","21","23","27","29","31","33","35","37","39","41","43","46","48","50"};
*************************为什么下面的draw会一直让改成final呢?************************************
&&& /**
&&&& * *********************&&& 设置监听匿名内部类&&&&&&&&&&&&& *******************************
&&& */&&&&&
&&&&& ItemListener item = new ItemListener(){
&&&
public void itemStateChanged(ItemEvent e) {
& if (e.getStateChange() == ItemEvent.SELECTED){
JComboBox a1 = (JComboBox)e.getSource();
& word = a1.getSelectedItem().toString();
//
& draw.setFont(new Font(word,wide,big));
&&&&& };
&&&
&&&&& ItemListener item1 = new ItemListener(){
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED){
JComboBox a2 = (JComboBox)e.getSource();
m = a2.getSelectedItem().toString();
wide = Integer.valueOf(m).intValue();
System.out.println("选择的是"+wide);
//
draw.setFont(new Font(word,wide,big));
&&&&& };
&&&
&&&&& ItemListener item2 = new ItemListener(){
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED){
JComboBox a3 = (JComboBox)e.getSource();
n = a3.getSelectedItem().toString();
big = Integer.valueOf(n).intValue();
System.out.println("选择的是"+big);
//
draw.setFont(new Font(word,wide,big));
&&&&& };
&&&
& ***********************************************************************************************
//设置字体设置的下拉框
&&&
&&&&& JComboBox wo = new JComboBox(words);
&&&
&&&&& wo.addItemListener(item);
&&&
&&&&& wo.setForeground(Color.blue);
&&&
&&&&& wo.setFont(new& Font("华文行楷", 1, 14));
&&&
&&&&& wo.setPreferredSize(new Dimension(90, 30));
&&&
&&&&& JButton wi1 = new JButton("粗细");
&&&
&&&&& wi1 .setPreferredSize(new Dimension(65, 30));
&&&
&&&&& wi1.setFont(new Font("华文行楷", 1, 14));
&&&
&&&&& wi1 .setForeground(Color.blue);
&&&
&&&&& //设置粗细的下拉框
&&&
&&&&& JComboBox wi = new JComboBox(wides);
&&&
&&&&& wi.setPreferredSize(new Dimension(40, 30));
&&&
&&&&& wi.addItemListener(item1);
&&&
&&&&& wi.setForeground(Color.blue);
&&&
&&&&& JButton bi1 = new JButton("大小");
&&&
&&&&& bi1.setPreferredSize(new Dimension(65, 30));
&&&
&&&&& bi1.setFont(new Font("华文行楷", 1, 14));
&&&
&&&&& bi1.setForeground(Color.blue);
&&&
&&&&& //设置字体大小的 下拉框
&&&
&&&&& JComboBox bi = new JComboBox(bigs);
&&&
&&&&& bi.addItemListener(item2);
&&&
&&&&& bi.setForeground(Color.blue);
&&&
& //apr.setPreferredSize(new Dimension(55,25));
&&&
&&&&& this.add(wo);
&&&
&&&&&& this.add(wi1);
&&&
&&&&&& this.add(wi);
&&
&&&&& this.add(bi1);
&&&
&&&&&& t his.add(bi);
}
**************************************************************************
//字体
import java.awt.C
import java.awt.G
* 定义添加文字的类
* @author 暗夜魅影
public class Word {
//定义绘制相关的变量
private int x1,y1;
public Word(int x1,int y1,String text) {
this.x1 = x1;
this.y1 = y1;
this.text =
public void draw(Graphics g) {
g.drawString(text,x1,y1);
}
}
*******************************************************************************************************
//监听器
public class DrawListener extends MouseAdapter{
* 定义在事件处理方法中需要用到的属性变量
//定义一个画图形的对象
&&&& private G
&&&& //定义一个获取工具的属性
&&&& private ToolPanel&
&&&& //定义一个获取颜色的属性
&&&& private ColorP
&&&& //定义一个获取画板的属性
&&&& private DrawP
&&&& //定义一个获取面板的属性
&&&& JP
&&&& //定义一个获取字体的属性
&&&& Word word =
&
&&&& /**
&&&&& * 构造函数来引入获取工具和颜色的面板对象
&&&&& */
&&&& public DrawListener(Graphics g,ToolPanel tool,ColorPanel color,DrawPanel draw){
&&&
this.g =
&&&
this.tool =
&&&
this.draw =
&&&
this.color =
&&&& }
/**
* 鼠标按下的时候执行的方法
public void mousePressed(MouseEvent e) {
// 获取鼠标在按下的时候点击的坐标值
x1 = e.getX();
y1 = e.getY();
* 鼠标释放的时候执行的方法
public void mouseReleased(MouseEvent e) {
//如果是字体则执行操作
if (tool.equals("word")) {
Object temp = JOptionPane.showInputDialog("请输入要显示在画图板上的文字!");
String message = "" + (temp == null ? "" : temp);
word = new Word(x1, y1, message, color.getColor());
word.draw(g);
问题补充:chen_yongkai 写道这也太乱了,代码不完整,还有符号错误,这让那些想帮忙的人都望而却步!
只是代码太多了,我怕你们看着更麻烦,所以把不重要的都删了,不完整是真的,可是我要问的那些还是都能实现的啊,我也只是刚学不久,可能会错误很多吧,不好意思、、、
问题补充:chen_yongkai 写道稍微看了一下,我觉得代码的结构可以改一下
public class DrawPanel extends JPanel {
* @param word the word to set
public void setWord(String word) {
this.word =
repaint();
* @param x the x to set
public void setX(int x) {
* @param y the y to set
public void setY(int y) {
public class PaintPanel extends JPanel {
protected void paintComponent(Graphics g) {
g.drawString(word, x, y);
这里面的X,Y可以改成我写的粗细和字体大小的属性吗?可是这样加上之后,调过字体之后应该还是只执行一遍吧,就是在设置draw上的属性应该不会变的,呵呵、、、我只是这么认为,我试试、谢了
问题补充:chen_yongkai 写道这也太乱了,代码不完整,还有符号错误,这让那些想帮忙的人都望而却步!
这是全部的代码,呵呵、、、如果可以办帮我改一下,我查了好多真的不知道怎么改了,要调整字体后上面画的东西还能保留着但是接下来写的字体是自己调整的字体,谢了
问题补充:中间的压缩文件是全部的代码还有图片,我设置完字体后不能及时的在画板上 调整,只有用第三个按钮就是油漆桶把整个画板 换一下色字体才会变成自己调整的,而且字体一旦调整后就会刷新画板把画板上之前的东西都变没了、、、、
问题补充:有没有简单的解决方法,我还没有学这个、、、、
(213.9 KB)
下载次数: 1
public class DrawPanel extends JPanel {&&
I
&&&&& protected void paintComponent(Graphics g) {&&
if (image != null)
g.drawImage(image, 0, 0, null);&
&&&&&&& }&
稍微看了一下,我觉得代码的结构可以改一下
public class DrawPanel extends JPanel {
* @param word the word to set
public void setWord(String word) {
this.word =
repaint();
* @param x the x to set
public void setX(int x) {
* @param y the y to set
public void setY(int y) {
public class PaintPanel extends JPanel {
protected void paintComponent(Graphics g) {
g.drawString(word, x, y);
这也太乱了,代码不完整,还有符号错误,这让那些想帮忙的人都望而却步!
已解决问题
未解决问题腾讯 英雄联盟 里面英雄价格不一样的原因? 腾讯是不是会对不不同价格的英雄属性,做修改。_百度知道
腾讯 英雄联盟 里面英雄价格不一样的原因? 腾讯是不是会对不不同价格的英雄属性,做修改。
提问者采纳
腾讯只是拳头公司的最大股份持有者,不能干涉游戏内容的。游戏价格不一样的原因是出来的先后,早出的便宜后出的贵。有人说是难操作的贵易操作的便宜,其实不是因为便宜的寒冰射手易大师并不容易用好。为啥这样呢,主要还是刚出来的时候大家游戏币都少后来长期玩游戏币就多了所以相对英雄价格就贵了,防止囤积游戏币没有东西买
其他类似问题
为您推荐:
其他2条回答
腾讯只是代理LOL, LOL是由美国 Roit Games 最新开发的3D大型竞技场战网游戏,其主创团队是由实力强劲的DotA-Allstars的核心人物,以及暴雪等著名游戏公司的美术、策划、程序人员组成,通过数年的埋头开发,将DotA经典玩法从对战平台延伸到真正的网络游戏世界。英雄的价格和其技能修改的波动无关, Roit Games公司修改技能是想让这个游戏平衡,甚至重做英雄
楼上各位说的墨迹又不对,英雄价格是按操作难度定的。腾讯不会根据价格修改,游戏公平性最重要。望采纳
英雄联盟的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁首先从这一篇的文章标题中可以看出,主要是讲dbml中对实体的属性赋值的相关知识,还有SendPropertyChanging与SendPropertyChanged这两个方法,从第五讲和第六讲中我们看到标题有些雷同,是的,但我讲它们的侧重点不同,第五讲主要讲实体中属性赋值的过程,此时会用到SendPropertyChanging与SendPropertyChanged这两个方法,而第六讲,主要是讲这两个方法的作用,先透露一下,主要讲事件触发机制的,呵呵。
public string ExceptionID
return this._ExceptionID;
if ((this._ExceptionID != value))
this.OnExceptionIDChanging(value);
this.SendPropertyChanging();
this._ExceptionID =
this.SendPropertyChanged("ExceptionID");
this.OnExceptionIDChanged();
这是一种其中的dbml实体类中的代码片段,它主要是为ExceptionID这个属性赋值,get部分没什么说的,已经返回这个_ExceptionID字段的值,主要看set部分,它的工作流程是:
1 判断_ExceptionID变量是否等于原来的值
2 如果不等,调用OnExceptionIDChanging方法,表示开始修改这字段,它是一个分部方法,可以由开发人员根据自己的逻辑去实现它
3 调用属性将要被修改方法SendPropertyChanging
4 对字段进行赋值
5 调用属性已经被修改方法SendPropertyChanged,并告诉方法修改的字段为&ExceptionID&
6 OnExceptionIDChanged,表示这个字段已经修改完成
我们主要看一下SendPropertyChanging和SendPropertyChanged
protected virtual void SendPropertyChanging()
if ((this.PropertyChanging != null))
this.PropertyChanging(this, emptyChangingEventArgs);
protected virtual void SendPropertyChanged(String propertyName)
if ((this.PropertyChanged != null))
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
这两个方法是派生自INotifyPropertyChanging和INotifyPropertyChanged这两个接口的,主要作用是通知客户端某个属性将要被修改和已经被修改,在这两个
方法体中,事实上是实现了触以下两个事件的作用
public event PropertyChangingEventHandler PropertyC
public event PropertyChangedEventHandler PropertyC
也就是说,只要属性被修改,那么这两个事实将被触发,那linqtosql为我们提供这个功能有什么作用呢?请看下回。
阅读(...) 评论()

我要回帖

更多关于 不同颜色牡丹属性 的文章

 

随机推荐