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