Friday 24 February 2017

JTable

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;

public class TableColumnColor extends JFrame
    {
     String[] columnNames = {"Column1", "Column2","Column3"};
         Object[][] data = {
         {"copy.gif", "Image1","dd" },
         {"save.gif", "Image2" ,"dd"},
         {"script.gif", "Image3","dd" },
         {"task.gif", "Image4" ,"dd"},
     };
   
     public TableColumnColor()
         {
         DefaultTableModel dtm = new DefaultTableModel(data,columnNames);
         JTable table=new JTable(dtm)
             {
             public Component prepareRenderer(TableCellRenderer renderer, int row, int column)
                 {
                 Component component = super.prepareRenderer(renderer,row,column);
               
                 if(column == 0)
                     {
                     component.setBackground(Color.yellow);
                 }
                 if(column == 1)
                     {
                     component.setBackground(Color.red);
                 }
                 if(column == 2)
                     {
                     component.setBackground(Color.pink);
                 }
                 return component;
             }
         };
       
         JScrollPane scroll=new JScrollPane(table);
         this.setContentPane(scroll);
         this.setBounds(100,50,300,150);
     }
     public static void main (String arg[])
         {
         TableColumnColor tes = new TableColumnColor();
         tes.setVisible(true);
         tes.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     }
}


Button Calling Label

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class PanelChange extends JFrame implements ActionListener,MouseListener
    {
   
     JPanel panel1 = new JPanel();
     JPanel panel2 = new JPanel();
     JLabel label = new JLabel("This is label");
     JButton but = new JButton("This is button");
   
     public PanelChange()
         {
         panel1.add(label);
         panel2.add(but);
       
       
         but.addActionListener(this);
         label.addMouseListener(this);
       
         getContentPane().add(panel2);
     }
   
     public void mouseClicked(MouseEvent me)
         {
         if(me.getClickCount() == 1)
             {
             panel1.setVisible(false);
             getContentPane().add(panel2);
             panel2.setVisible(true);
         }
     }
     public void mousePressed(MouseEvent me){}
     public void mouseReleased(MouseEvent me){}
     public void mouseEntered(MouseEvent me){}
     public void mouseExited(MouseEvent me){}
   
     public void actionPerformed(ActionEvent ae)
         {
         if(ae.getSource() == but)
             {
             panel2.setVisible(false);
             getContentPane().add(panel1);
             panel1.setVisible(true);
         }
     }
   
     public static void main(String args[])
         {
         PanelChange pc = new PanelChange();
         pc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         pc.setSize(200,200);
         pc.setVisible(true);
     }
  }






JComboBox

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.text.*;
public class AutoComplete extends JComboBox    implements JComboBox.KeySelectionManager
{
    private String searchFor;
    private long lap;
    public class CBDocument extends PlainDocument
    {
        public void insertString(int offset, String str, AttributeSet a) throws BadLocationException
        {
            if (str==null) return;
            super.insertString(offset, str, a);
            if(!isPopupVisible() && str.length() != 0) fireActionEvent();
        }
    }
    public AutoComplete(Object[] items)
    {
        super(items);
        lap = new java.util.Date().getTime();
        setKeySelectionManager(this);
        JTextField tf;
        if(getEditor() != null)
        {
            tf = (JTextField)getEditor().getEditorComponent();
            if(tf != null)
            {
                tf.setDocument(new CBDocument());
                addActionListener(new ActionListener()
                {
                    public void actionPerformed(ActionEvent evt)
                    {
                        JTextField tf = (JTextField)getEditor().getEditorComponent();
                        String text = tf.getText();
                        ComboBoxModel aModel = getModel();
                        String current;
                        for(int i = 0; i < aModel.getSize(); i++)
                        {
                            current = aModel.getElementAt(i).toString();
                            if(current.toLowerCase().startsWith(text.toLowerCase()))
                            {
                                tf.setText(current);
                                tf.setSelectionStart(text.length());
                                tf.setSelectionEnd(current.length());
                                break;
                            }
                        }
                    }
                });
            }
        }
    }
    public int selectionForKey(char aKey, ComboBoxModel aModel)
    {
        long now = new java.util.Date().getTime();
        if (searchFor!=null && aKey==KeyEvent.VK_BACK_SPACE &&    searchFor.length()>0)
        {
            searchFor = searchFor.substring(0, searchFor.length() -1);
        }
        else
        {
            //    System.out.println(lap);
            // Kam nie hier vorbei.
            if(lap + 1000 < now)
                searchFor = "" + aKey;
            else
                searchFor = searchFor + aKey;
        }
        lap = now;
        String current;
        for(int i = 0; i < aModel.getSize(); i++)
        {
            current = aModel.getElementAt(i).toString().toLowerCase();
            if (current.toLowerCase().startsWith(searchFor.toLowerCase())) return i;
        }
        return -1;
    }
    public void fireActionEvent()
    {
        super.fireActionEvent();
    }
    public static void main(String arg[])
    {
        JFrame f = new JFrame("AutoCompleteComboBox");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setSize(200,300);
        Container cp= f.getContentPane();
        cp.setLayout(null);
        //String[] names= {"Beate", "Claudia", "Fjodor", "Fred", "Friedrich",    "Fritz", "Frodo", "Hermann", "Willi"};
        //JComboBox cBox= new AutoComplete(names);
        Locale[] locales = Locale.getAvailableLocales();//
        JComboBox cBox= new AutoComplete(locales);
        cBox.setBounds(50,50,100,21);
        cBox.setEditable(true);
        cp.add(cBox);
        f.setVisible(true);
    }
}