import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
public class JListDemo extends JFrame {
Container container;
JTextField selectedText;
JList list;
JPanel selectedColor;
public JListDemo() {
container=getContentPane();
container.setLayout(new BorderLayout());
Color[]colors = {Color.orange,Color.pink,Color.red,Color.black,Color.blue,Color.cyan,Color.green,Color.lightGray};
list = new JList(colors);
JScrollPane scrollpane = new JScrollPane(list);
selectedText = new JTextField(20);
selectedColor = new JPanel();
selectedColor.setPreferredSize(new Dimension(20,20));
container.add(selectedText,BorderLayout.NORTH);
container.add(scrollPane,BorderLayout.CENTER);
container.add(selectedColor,BorderLayout.SOUTH);
list.setCellRenderer(new ColorRenderer());
list.addListSelectionListener(new ListSelectionListener() {
public void valueChangeed(ListSelectionEvent event) {
Color c = (Color)list.getSelectedValue();
selectedText.setText("选择颜色:"+" R="+c.getRed()+" G ="+c.getGreen()+" B="+c.getBlue());
selectedColor.setBackground(c);
}
});
setSize(300,200);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new JListDemo();
}
}编译错误如下,小弟新手,麻烦大家说详细一些,谢谢
JListDemo.java:21: 找不到符号
符号: 变量 scrollpane
位置: 类 JLlistDemo
container.add(scrollPane,BorderLayout.CENTER);JListDemo.java:23: 找不到符号
符号: 类 ColorRenderer
位置: 类 JListDemo
list.setCellRenderer(new ColorRenderer());JListDemo.java:24:(匿名 JListDemo$1)s不是抽象的,并且未覆盖 java.swing.event.ListSelectionListener 中的抽象方法 valueChanged(javax.swing.event.ListSelectionEvent)
list.addListSelectionListener(new ListSelectionListener3错误
import javax.swing.*;
import javax.swing.event.*;
public class JListDemo extends JFrame {
Container container;
JTextField selectedText;
JList list;
JPanel selectedColor;
public JListDemo() {
container=getContentPane();
container.setLayout(new BorderLayout());
Color[]colors = {Color.orange,Color.pink,Color.red,Color.black,Color.blue,Color.cyan,Color.green,Color.lightGray};
list = new JList(colors);
JScrollPane scrollpane = new JScrollPane(list);
selectedText = new JTextField(20);
selectedColor = new JPanel();
selectedColor.setPreferredSize(new Dimension(20,20));
container.add(selectedText,BorderLayout.NORTH);
container.add(scrollPane,BorderLayout.CENTER);
container.add(selectedColor,BorderLayout.SOUTH);
list.setCellRenderer(new ColorRenderer());
list.addListSelectionListener(new ListSelectionListener() {
public void valueChangeed(ListSelectionEvent event) {
Color c = (Color)list.getSelectedValue();
selectedText.setText("选择颜色:"+" R="+c.getRed()+" G ="+c.getGreen()+" B="+c.getBlue());
selectedColor.setBackground(c);
}
});
setSize(300,200);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new JListDemo();
}
}编译错误如下,小弟新手,麻烦大家说详细一些,谢谢
JListDemo.java:21: 找不到符号
符号: 变量 scrollpane
位置: 类 JLlistDemo
container.add(scrollPane,BorderLayout.CENTER);JListDemo.java:23: 找不到符号
符号: 类 ColorRenderer
位置: 类 JListDemo
list.setCellRenderer(new ColorRenderer());JListDemo.java:24:(匿名 JListDemo$1)s不是抽象的,并且未覆盖 java.swing.event.ListSelectionListener 中的抽象方法 valueChanged(javax.swing.event.ListSelectionEvent)
list.addListSelectionListener(new ListSelectionListener3错误
==>
container.add(scrollpane,BorderLayout.CENTER);ColorRenderer好像没有这个类。不知道是啥public void valueChangeed(ListSelectionEvent event)
==>
public void valueChanged(ListSelectionEvent event) 注:你应该用eclipse来编码,这些编译问题一下就看出来了
import java.awt.Color;
import java.awt.Component;import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
import javax.swing.border.MatteBorder;//彩色列表框的Renderer,须实现接口ListCellRenderer
public class ColorRenderer extends JLabel implements ListCellRenderer { //实现接口中的getListCellRendererComponent方法
public Component getListCellRendererComponent(JList list, Object obj, int row, boolean sel, boolean hasFocus) {
if (hasFocus || sel) { //设置选中时的边界
setBorder(new MatteBorder(2, 10, 2, 10, list.getSelectionBackground()));
}
else { //设置未选中时的边界
setBorder(new MatteBorder(2, 10, 2, 10, list.getBackground()));
}
Color c=(Color)obj; //得到该行的颜色值
setForeground(c); //设置颜色
setText(c.toString()); //设置文本
return this;
}
}
javac -classpath 需要加载的类路径 需要编译的source