1. 在JColorChooser中的button上加一个listener,JFrame实现这个listener.

解决方案 »

  1.   

    1.
    try:
      在JFrame中添加一个按钮,按钮的处理为:
      jButton1.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
           JColorChooser clrChooser = new JColorChooser();//实例化一个JColorChooser
          //show the color chooser
          Color clr =clrChooser.showDialog(this,"Pick a color",this.jPanel1.getBackground());
          //clr即为选择的颜色
          this.jPanel1.setBackground(clr);
          }
        });
      

  2.   

    第二个问题是:
    在一个InternalFrame上画几何图形,比如说直线等.如何才能实现一次画一条直线.当多次画线时这些直线都是在同一个internalframe上.(在paint()利用drawLine()画线,可是调用repait()后原来的那条线无法保留原来那条直线)
    第三个问题是:
    如何实现选定图形用一个数组或集合来保存你过去画过的东西。似乎只能这样做。
      

  3.   

    第一个问题,如St0ne82() 所说
    第二个问题,你为什么不把线全部画完了在repaint()呢?奇怪
      

  4.   

    jFresH_MaN()()()()()()()()() 
    对于第二个问题,我想实现的是:比如说我在窗口里单击两次分别选择了起点和终点,隔一会儿再单击两次选择另外的起点跟终点画另外一条线。也就是说并不是要求一下子就指点这些直线的。就像在autoCAD里用户不是也可以分别多次画出多条直线那样
      

  5.   

    2.
         第一步:定义一个类:MyGraph
      里面属性包括有:颜色,类型(是否填充),起点坐标,终点坐标,图像类形(是否为直线,圆,矩形等)你每画一条线(其它类同)后,就实例化一个MyGraph对象,并存到一个Vector 对象数组中.
         第二步:重载repaint()方法.
      从Vector数组中提取对象,判断它是属于什么图形(根据"图像类形"属性),然后画出图形(根据MyGraph对象提供的其它属性)
      

  6.   

    1.
       你可以定义一个全局变量Color color;
       需要使用时就color=JColorChooser.showDialog(...);可以得到你从选取的颜色了.具体的可查看帮助文档.3.不清楚
      

  7.   

    第一个问题已经解决了.用的就是JColorChooser.showDialog()
    第二个问题也解决了,可是却出现了一个新问题.就是画存储在vector中的多个图形,会出现CPU占有率为100%.而且原来屏幕上的图形会消失一会.是不是跟我没用双缓冲有关系啊.如果有关系的话,大家能不能说说双缓冲是怎么用的?具体的我贴在这里:
    http://community.csdn.net/Expert/topic/3569/3569649.xml?temp=.3135034.大家能不能帮忙看看.
    第三个问题还没解决.现在还有第四个问题:我在使用JCheckBoxMenuItem时,不管我怎么用setState()或setSelected()
    原来选定的(前面打钩)还是选定即使用setState(false)或setSelected(false)也是依然选定.这是怎么回事.