谁能给一个鼠标在Jtable中悬停效果的例子啊,谢谢!

解决方案 »

  1.   

    添加MouseMotionListener动作监听,在mouseMoved方法中写代码。
      

  2.   


    package com.swing.jtable;import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Component;
    import java.awt.EventQueue;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseMotionAdapter;
    import java.util.Vector;import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.SwingConstants;
    import javax.swing.SwingUtilities;
    import javax.swing.table.DefaultTableCellRenderer;
    import javax.swing.table.DefaultTableModel;public class JTableMouseMovingEvent extends JFrame {
      /**
       * 
       */
      private static final long serialVersionUID = 1L;  /**  */
      private JTable table;  /**  */
      private String[] columnName = new String[] {"title1", "name", "age" };  /**  */
      private DefaultTableModel model = null;  /**  */
      private int rowCount = -1;  /**
       * Launch the application
       * 
       * @param args
       */
      public static void main(String args[]) {
        EventQueue.invokeLater(new Runnable() {
          public void run() {
            try {
              JTableMouseMovingEvent frame = new JTableMouseMovingEvent();
              frame.setVisible(true);
            } catch (Exception e) {
              e.printStackTrace();
            }
          }
        });
      }  /**
       * Create the frame
       */
      public JTableMouseMovingEvent() {
        super();
        setBounds(100, 100, 500, 375);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    final JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());
        getContentPane().add(panel, BorderLayout.CENTER);    final JScrollPane scrollPane = new JScrollPane();
        panel.add(scrollPane, BorderLayout.CENTER);    table = new JTable();
        table.addMouseMotionListener(new MouseMotionAdapter() {
          @Override
          public void mouseMoved(final MouseEvent e) {
            rowCount = table.rowAtPoint(e.getPoint());
            int row = table.rowAtPoint(e.getPoint());
            int col = table.columnAtPoint(e.getPoint());
            table.setRowSelectionInterval(row, row);
            table.setColumnSelectionInterval(col, col);
          }
        });    table.addMouseListener(new java.awt.event.MouseAdapter() {
          @Override
          public void mouseReleased(java.awt.event.MouseEvent e) {
            if (e.getClickCount() == 1
                && SwingUtilities.isRightMouseButton(e)) {
              int row = table.rowAtPoint(e.getPoint());
              int col = table.columnAtPoint(e.getPoint());
              table.setRowSelectionInterval(row, row);
              table.setColumnSelectionInterval(col, col);
            }
          }
        });    scrollPane.setViewportView(table);
        model = new DefaultTableModel(null, columnName);
        Vector<String> row = null;
        for (int i = 0; i < 10; i++) {
          row = new Vector<String>();
          row.add(""
              + i);
          row.add("table"
              + i);
          row.add(""
              + (20 + i));
          model.addRow(row);
        }
        table.setModel(model);
        table.setDefaultRenderer(Object.class, new TableCellRenderer());
        //
      }  class TableCellRenderer extends DefaultTableCellRenderer {
        /**  */
        private static final long serialVersionUID = -5172589582171358319L;    /** {@inheritDoc} */
        @Override
        public Component getTableCellRendererComponent(JTable jtable, Object value,
            boolean isSelected, boolean hasFocus, int row, int column) {
          JLabel label =
              (JLabel) super.getTableCellRendererComponent(jtable, value,
                  isSelected, hasFocus, row, column);
          label.setHorizontalAlignment(SwingConstants.CENTER);
          if (row == rowCount) {
            label.setBackground(new Color(200, 200, 200));
          } else {
            label.setBackground(new Color(255, 255, 255));
          }      return label;
        }
      }}
      

  3.   

    没明白楼主要实现什么功能
    什么叫鼠标在Jtable中悬停效果?
      

  4.   


    Object.addMouseTrackListener(new MouseTrackAdapter() {
    @Override
    public void mouseEnter(MouseEvent e) {
    }
    });
      

  5.   

    悬停效果是什么意思?
    改外观?setCursor