兄弟,你的程序杂乱无章,程序本身就有错误,改正为:1)将Choice colorCh = new Choice();放在public TextOut()之前;2)将getSelectedItem()改为getSelectedIndex();3)将else if (c1.getSelectedItem() == 1)中的c1改为colorCh
就算这样改了,也只能保证程序编译和运行正确,但并不能实现你的功能

解决方案 »

  1.   

    程序修改如下
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.geom.*;
    import javax.swing.border.*;public class TextWin
    {
      public static void main(String[] args)
      {
        JFrame frame = new TextFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setBounds(120,120,800,500);
        frame.show();
      }
    }
    class TextFrame extends JFrame
    {
      public TextFrame()
      {
        setTitle("滚动字体");
        setResizable(false);    Container content = getContentPane();    TextOut textOut = new TextOut();
        content.add(textOut);  }
    }
    class TextOut extends JPanel implements ActionListener,ItemListener
    {
    Choice colorCh = new Choice();
    Choice fontCh = new Choice();
    Choice sizeCh = new Choice();
    JTextField rollNum = new JTextField();
    JButton runButton = new JButton("Run");
      public TextOut()
      {    setLayout(null);
      //  JPanel panel = new TextOut();
        JTextField textField = new JTextField(300);
        textField.setBounds(250, 10, 300, 25);
        BevelBorder edge1 = new BevelBorder(BevelBorder.LOWERED);
        textField.setBorder(edge1);
        add(textField);
        textField.addActionListener(this);    colorCh.add("  黑色 ");
        colorCh.add("  蓝色 ");
        colorCh.add("  红色 ");
        colorCh.add("  黄色 ");
        colorCh.add("  绿色 ");
        colorCh.add("  白色 ");
        colorCh.setBounds(200, 45, 60, 20);
        add(colorCh);
        colorCh.addItemListener(this);
        fontCh.add("  宋体 ");
        fontCh.add("  楷体 ");
        fontCh.add("  黑体 ");
        fontCh.add(" Arial");
        fontCh.add(" Batang");
        fontCh.add(" Dotum");
        fontCh.setBounds(280, 45, 60, 25);
        add(fontCh);
        fontCh.addItemListener(this);
        sizeCh.add("二号");
        sizeCh.add("小二");
        sizeCh.add("三号");
        sizeCh.add("小三");
        sizeCh.add("四号");
        sizeCh.add("小四");
        sizeCh.setBounds(360, 45, 60, 25);
        add(sizeCh);
        sizeCh.addItemListener(this);
        rollNum.setBounds(440, 45, 40, 22);
        BevelBorder edge2 = new BevelBorder(BevelBorder.LOWERED);
        rollNum.setBorder(edge2);
        add(rollNum);
        rollNum.addActionListener(this);    BevelBorder edge3 = new BevelBorder(BevelBorder.RAISED);
        runButton.setBounds(520, 45, 60, 25);
        runButton.setBorder(edge3);
        add(runButton);
        runButton.addActionListener(this);
      }
      public void itemStateChanged(ItemEvent e)
      {
        String str="";
        int font;    if (e.getItemSelectable() == colorCh)
        {
          str = colorCh.getSelectedItem();
            System.out.println(str);
        }  }
      public void paintComponent(Graphics g)
      {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D)g;
        g2.drawString("aaaaa",200,300);
      }  public void actionPerformed(ActionEvent e)
      {
        Object source = e.getSource();
        if (source == runButton)
        {
          String strInput = rollNum.getText();
          System.out.println(strInput);
        }
      }
    }
      

  2.   

    我重新修改的,这个程序功能是,输出滚动字体,能改变字体,颜色,大小和循环次数import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.geom.*;
    import javax.swing.border.*;public class TextWin
    {
      public static void main(String[] args)
      {
        JFrame frame = new TextFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setBounds(120,120,800,500);
        frame.show();
      }
    }
    class TextFrame extends JFrame
    {
      public TextFrame()
      {
        setTitle("滚动字体");
        setResizable(false);    Container content = getContentPane();    TextOut textOut = new TextOut();
        content.add(textOut);  }
    }
    class TextOut extends JPanel implements ActionListener,ItemListener
    {
      JTextField textField;
      Choice colorCh;
      Choice fontCh;
      Choice sizeCh;
      JTextField rollNum;
      BevelBorder edge3;
      Font font;  String fontStr;
      int fontSize;
      Color color;  public TextOut()
      {
        setLayout(null);
        textField = new JTextField(300);
        textField.setBounds(250, 10, 300, 25);
        BevelBorder edge1 = new BevelBorder(BevelBorder.LOWERED);
        textField.setBorder(edge1);
        add(textField);
        textField.addActionListener(this);    colorCh = new Choice();
        colorCh.add("  黑色 ");
        colorCh.add("  蓝色 ");
        colorCh.add("  红色 ");
        colorCh.add("  黄色 ");
        colorCh.add("  绿色 ");
        colorCh.add("  白色 ");
        colorCh.setBounds(200, 45, 60, 20);
        add(colorCh);
        colorCh.addItemListener(this);    fontCh = new Choice();
        fontCh.add("  宋体 ");
        fontCh.add("  楷体 ");
        fontCh.add("  黑体 ");
        fontCh.add(" Arial");
        fontCh.add(" Batang");
        fontCh.add(" Dotum");
        fontCh.setBounds(280, 45, 60, 25);
        add(fontCh);
        fontCh.addItemListener(this);    sizeCh = new Choice();
        sizeCh.add("二号");
        sizeCh.add("小二");
        sizeCh.add("三号");
        sizeCh.add("小三");
        sizeCh.add("四号");
        sizeCh.add("小四");
        sizeCh.setBounds(360, 45, 60, 25);
        add(sizeCh);
        sizeCh.addItemListener(this);    rollNum = new JTextField();
        rollNum.setBounds(440, 45, 40, 22);
        BevelBorder edge2 = new BevelBorder(BevelBorder.LOWERED);
        rollNum.setBorder(edge2);
        add(rollNum);
        rollNum.addActionListener(this);    edge3 = new BevelBorder(BevelBorder.RAISED);
        JButton runButton = new JButton("Run");
        runButton.setBounds(520, 45, 60, 25);
        runButton.setBorder(edge3);
        add(runButton);
        runButton.addActionListener(this);
      }  public void itemStateChanged(ItemEvent e)
      {    if (e.getItemSelectable() == colorCh)
        {
          if (colorCh.getSelectedIndex() == 0)
          {
            color = Color.black;
          }
          else if (colorCh.getSelectedIndex() == 1)
          {
            color = Color.blue;
          }    }    else if (e.getItemSelectable() == fontCh)
        {
          if (fontCh.getSelectedIndex() == 0)
          {
            fontStr = "  宋体 ";
          }
          else if (fontCh.getSelectedIndex() == 1)
          {
            fontStr = "  楷体 ";
          }    }    else if (e.getItemSelectable() == sizeCh)
        {
          if (sizeCh.getSelectedIndex() == 0)
          {
            fontSize = 16;
          }
          else if (sizeCh.getSelectedIndex() == 1)
          {
            fontSize = 14;
          }    }
      }
      public void actionPerformed(ActionEvent e)
      {
        Object source = e.getSource();    JButton runButton = (JButton) e.getSource();
        JTextField textField = (JTextField) e.getSource();    if (source == runButton)
        {
          String strInput = textField.getText();
          fontSize = Integer.valueOf(rollNum.getText()).intValue();
          font.deriveFont(fontSize);      public void paintComponent(Graphics g)
          {
            super.paintComponent(g);
            for (int i = 0; i < fontSize; i++)
            {
            }        for (int j = 0; j < 1100; j++)
            {
              g.setFont(font);
              g.setColor(Color.black);
              g.drawString("I Love Java", 1024 - j, 400);
              g.setColor(color);
              g.drawString("I Love Java", 1023 - j, 300);          try
              {
                Thread.sleep(5);
              }
              catch (InterruptedException e1)
              {}
            }      }    }  }
     }}