| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1241 人关注过本帖
标题:如何在这个类中实现这个方法
取消只看楼主 加入收藏
Dreamawaker
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-12
收藏
 问题点数:0 回复次数:6 
如何在这个类中实现这个方法

目前程序如下,请问,如何在Ex14中实现DrawPanel中的画图功能?


package Ex14;

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

public class DrawPanel extends JPanel
{
private MyColorChooser mcc;
public Color mycolor;

public DrawPanel()
{
mcc = new MyColorChooser();
}

public void set()
{
mycolor = mcc.mycolorchooser;
repaint();
}

public void paintComponent( Graphics g )
{
super.paint( g );
g.setColor( mycolor );
g.fillRect( 200, 100, 200, 100 );

}
}


package Ex14;

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

public class Ex14 extends JApplet
{
private MyColorChooser mcc;
private DrawPanel dp;
private JButton button;
private FlowLayout layout;

public Ex14()
{
Container container = getContentPane();
layout = new FlowLayout();
container.setLayout( layout );

mcc = new MyColorChooser();
dp = new DrawPanel();
container.add( mcc );

dp.repaint();

button = new JButton("OK");
button.addActionListener(
new ActionListener()
{
public void actionPerformed( ActionEvent actionEvent )
{
dp.repaint();
}
}

);
container.add( button );

setSize( 800, 600 );
setVisible( true );
}

}

搜索更多相关主题的帖子: mcc void private package public 
2006-11-29 13:44
Dreamawaker
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-12
收藏
得分:0 

还有一个类,MyColorChooser。
要实现用set方法来设置当前颜色的红、绿、蓝值。并在调用DrawPanel的set方法时要自动重绘自身。
现在好像连图像都画不出来………………
package Ex14;

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

public class MyColorChooser extends JPanel
{
private JSlider RSlider, GSlider, BSlider;
private JTextField Rtext, Gtext, Btext;
private JLabel RLabel, GLabel, BLabel;
private int RED=0, GREEN=0, BLUE=0;
public Color mycolorchooser;

public MyColorChooser( )
{
RSlider = new JSlider( SwingConstants.HORIZONTAL, 0, 255, 0 );
RSlider.setMajorTickSpacing( 10 );
RSlider.setPaintTicks( false );
RSlider.addChangeListener
(
new ChangeListener()
{
public void stateChanged( ChangeEvent e )
{
RED = RSlider.getValue();
Rtext.setText( Integer.toString( RED ) );
repaint();
}
}
);

GSlider = new JSlider( SwingConstants.HORIZONTAL, 0, 255, 0 );
GSlider.setMajorTickSpacing( 10 );
GSlider.setPaintTicks( false );
GSlider.addChangeListener
(
new ChangeListener()
{
public void stateChanged( ChangeEvent e )
{
GREEN = GSlider.getValue();
Gtext.setText( Integer.toString( GREEN ) );
repaint();
}
}
);

BSlider = new JSlider( SwingConstants.HORIZONTAL, 0, 255, 0 );
BSlider.setMajorTickSpacing( 10 );
BSlider.setPaintTicks( false );
BSlider.addChangeListener
(
new ChangeListener()
{
public void stateChanged( ChangeEvent e )
{
BLUE = BSlider.getValue();
Btext.setText( Integer.toString( BLUE ) );
repaint();
}
}
);

Rtext = new JTextField( 5 );
Rtext.setText( Integer.toString( RED ) );
Rtext.addActionListener(
new ActionListener()
{
public void actionPerformed( ActionEvent actionEvent )
{
RSlider.setValue( Integer.valueOf( Rtext.getText()) );
repaint();
}
}

);

Gtext = new JTextField( 5 );
Gtext.setText( Integer.toString( BLUE ) );
Gtext.addActionListener(
new ActionListener()
{
public void actionPerformed( ActionEvent actionEvent )
{
GSlider.setValue( Integer.valueOf( Gtext.getText()) );
repaint();
}
}

);

Btext = new JTextField( 5 );
Btext.setText( Integer.toString( GREEN ) );
Btext.addActionListener(
new ActionListener()
{
public void actionPerformed( ActionEvent actionEvent )
{
BSlider.setValue( Integer.valueOf( Btext.getText()) );
repaint();
}
}

);


RLabel = new JLabel( "RED:" );
GLabel = new JLabel( "GREEN:" );
BLabel = new JLabel( "BLUE:" );

add( RLabel );
add( Rtext );
add( RSlider );

add( GLabel );
add( Gtext );
add( GSlider );

add( BLabel );
add( Btext );
add( BSlider );
}

public void paintComponent( Graphics g )
{
super.paintComponent( g );
mycolorchooser = new Color( RED, GREEN, BLUE );
}

public Dimension getPreferredSize()
{
return new Dimension( 200, 180 );
}
}


2006-11-29 20:17
Dreamawaker
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-12
收藏
得分:0 

可是这样的话救没有调用set方法了吧?


2006-11-29 20:37
Dreamawaker
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-12
收藏
得分:0 

好的,调试去………………
再问件事情,就是这个button的布局问题,我们现在用的是BLUEJ,这个按钮怎么给它搞到那几个JSlider的正下方去?

[此贴子已经被作者于2006-11-29 20:58:41编辑过]


2006-11-29 20:57
Dreamawaker
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-12
收藏
得分:0 

我把MyColorChooser放到BorderLayou.NORRH里面的时侯好像只能显示一行???


2006-11-29 21:27
Dreamawaker
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-12
收藏
得分:0 

和把BorderLayout的setSize设的多大没有关系么……


2006-11-29 21:33
Dreamawaker
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-12
收藏
得分:0 
原来如此……那就继续往下做了……还要多多指教。

2006-11-29 21:36
快速回复:如何在这个类中实现这个方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038719 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved