Popular Posts
javax.net.ssl.SSLHandshakeException: Connection closed by peer in Android 5.0 Lollipop Recently, there is a error occurs when access website via ssl connection like below although it worked fine several days ago. // Enable SSL... Tired of Hibernate? Try JDBI in your code JDBI Quick sample ICategoryDAO.java : create a data access interface (implement is not required) package com.prhythm.erotic.task.data.... Enable SSL connection for Jsoup import org.jsoup.Connection; import org.jsoup.Jsoup; import javax.net.ssl.*; import java.io.IOException; import java.security.KeyManagement...
Blog Archive
Stats
Table cell tooltip text
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.util.Vector;

import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;

public class TableCellToolTips extends JPanel {

    JTable table1;
    JTable table2;

    public TableCellToolTips() {
        // TODO Auto-generated constructor stub
        this.setLayout(new GridBagLayout());

        this.initTable1();
        this.initTable2();

        JScrollPane s1 = new JScrollPane(this.table1);
        JScrollPane s2 = new JScrollPane(this.table2);
        s1.setBorder(BorderFactory.createTitledBorder("Table 1: override prepareRenderer"));
        s2.setBorder(BorderFactory.createTitledBorder("Table 2: add mouse move event handler"));
        s1.setPreferredSize(new Dimension(600, 200));
        s2.setPreferredSize(new Dimension(600, 200));

        this.add(s1, new GridBagConstraints(0, 0, 1, 1, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0));
        this.add(s2, new GridBagConstraints(0, 1, 1, 1, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0));
    }

    void initTable1() {
        DefaultTableModel model = new DefaultTableModel();
        this.table1 = new JTable(model) {
            @Override
            public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
                Component c = super.prepareRenderer(renderer, row, column);
                if (c instanceof JComponent) {
                    JComponent jc = (JComponent) c;
                    jc.setToolTipText(String.valueOf(getValueAt(row, column)));
                }
                return c;
            }
        };

        this.initColumn(model);
        this.initData(model);

    }

    void initTable2() {
        DefaultTableModel model = new DefaultTableModel();
        this.table2 = new JTable(model);
        this.table2.addMouseMotionListener(new MouseMotionAdapter() {
            public void mouseMoved(MouseEvent e) {
                Point p = e.getPoint();
                int row = table2.rowAtPoint(p);
                int column = table2.columnAtPoint(p);
                table2.setToolTipText(String.valueOf(table2.getValueAt(row, column)));
            }
        });

        this.initColumn(model);
        this.initData(model);
    }

    void initColumn(DefaultTableModel model) {
        model.addColumn("x");
        model.addColumn("1");
        model.addColumn("2");
        model.addColumn("3");
        model.addColumn("4");
        model.addColumn("5");
        model.addColumn("6");
        model.addColumn("7");
        model.addColumn("8");
        model.addColumn("9");
    }

    void initData(DefaultTableModel model) {
        model.getDataVector().removeAllElements();
        for (int i = 1; i < 10; i++) {
            Vector<Object> row = new Vector<Object>();
            row.add(i);
            for (int j = 1; j < 10; j++) {
                row.add(String.format("%d x %d = %d", i, j, i * j));
            }
            model.addRow(row);
        }
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InstantiationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (UnsupportedLookAndFeelException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("Table Cell ToolTips");

        frame.setContentPane(new TableCellToolTips());
        frame.pack();

        Dimension sc = Toolkit.getDefaultToolkit().getScreenSize();
        frame.setLocation((sc.width - frame.getWidth()) / 2, (sc.height - frame.getHeight()) / 2);
        frame.setVisible(true);
    }

}