Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.awt.Color;
import java.awt.Component;
import java.awt.FlowLayout;
import java.util.Hashtable;

import javax.swing.DefaultListCellRenderer;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JList;

class Main extends JFrame {
    Hashtable<Integer, Color> table;
    JComboBox<String> c;

    public Main() {

        setLayout(new FlowLayout());
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        table = new Hashtable<Integer, Color>();
        table.put(1, Color.RED);
        table.put(2, Color.BLUE);
        table.put(3, Color.GREEN);
        table.put(4, Color.GRAY);

        c = new JComboBox<String>();
        c.addItem("Item 1");
        c.addItem("Item 2");
        c.addItem("Item 3");
        c.addItem("Item 4");
        c.addItem("Item 5");
        c.addItem("Item 6");
        c.addItem("Item 7");
        c.addItem("Item 8");

        c.setRenderer(new MyListCellRenderer(table));

        add(c);
        setSize(400, 400);
        setVisible(true);
    }

    public static void main(String args[]) {
        new Main();
    }
}

class MyListCellRenderer extends DefaultListCellRenderer {
    Hashtable<Integer, Color> table;

    public MyListCellRenderer(Hashtable<Integer, Color> table) {
        this.table = table;
        setOpaque(true);
    }

    public Component getListCellRendererComponent(JList jc, Object val, int idx, boolean isSelected,
            boolean cellHasFocus) {
        setText(val.toString());
        setForeground(table.get(idx));
        if (isSelected)
            setBackground(Color.LIGHT_GRAY);
        else
            setBackground(Color.WHITE);
        return this;
    }
}