📄 cachetablescrollpane.java
字号:
// Decompiled by DJ v2.9.9.60 Copyright 2000 Atanas Neshkov Date: 2004-2-20 9:17:08
// Home Page : http://members.fortunecity.com/neshkov/dj.html - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name: CacheTableScrollPane.java
package utility.HWCacheTable;
import java.awt.*;
import java.awt.event.*;
import java.util.ResourceBundle;
import javax.swing.*;
import sbsnms.main.sbsnmsGUI;
import utility.MemoryMgr;
public class CacheTableScrollPane extends JScrollPane
{
class LineNumTip extends JPopupMenu
{
public Dimension getSize()
{
return cachedLinePanel.getPreferredSize();
}
public void setText(String s)
{
cachedLine.setText(sbsnmsGUI.resources.getString("LineNO") + s);
}
public void destroy()
{
cachedLine = null;
if(cachedLinePanel != null)
cachedLinePanel.removeAll();
cachedLinePanel = null;
}
JLabel cachedLine;
JPanel cachedLinePanel;
public LineNumTip()
{
cachedLine = new JLabel("0");
cachedLinePanel = new JPanel(new FlowLayout(), true);
cachedLine.setBackground(new Color(255, 255, 140));
cachedLinePanel.setBackground(new Color(255, 255, 140));
setBackground(new Color(255, 255, 140));
cachedLine.setForeground(Color.black);
cachedLine.setHorizontalAlignment(4);
cachedLinePanel.add(cachedLine);
add(cachedLinePanel);
setBorder(BorderFactory.createLineBorder(Color.black, 1));
}
}
public CacheTableScrollPane()
{
pagedTable = null;
init = true;
verticalTableScrollBar = null;
win = null;
initialize();
}
public CacheTableScrollPane(JTable jtable)
{
pagedTable = null;
init = true;
verticalTableScrollBar = null;
win = null;
pagedTable = jtable;
initialize();
}
public void setTable(JTable jtable)
{
pagedTable = jtable;
}
public void initialize()
{
setVerticalScrollBarPolicy(20);
setHorizontalScrollBarPolicy(30);
setDoubleBuffered(true);
verticalTableScrollBar = getVerticalScrollBar();
if(verticalTableScrollBar == null)
{
verticalTableScrollBar = createVerticalScrollBar();
setVerticalScrollBar(verticalTableScrollBar);
}
verticalTableScrollBar.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent mouseevent)
{
win = createWin();
showWin(mouseevent);
}
public void mouseReleased(MouseEvent mouseevent)
{
hideWin();
}
});
verticalTableScrollBar.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent mouseevent)
{
showWin(mouseevent);
}
});
}
private void showWin(MouseEvent mouseevent)
{
if(verticalTableScrollBar == null || pagedTable == null)
return;
int i = rowAtPoint(mouseevent);
if(i == -1)
{
return;
} else
{
win = createWin();
win.setText(String.valueOf(i));
win.pack();
win.setVisible(true);
Point point = getPoint(mouseevent);
win.setLocation(point);
return;
}
}
private void hideWin()
{
if(win == null)
{
return;
} else
{
win.setVisible(false);
return;
}
}
private int rowAtPoint(MouseEvent mouseevent)
{
if(pagedTable == null)
return -1;
int i = pagedTable.rowAtPoint(new Point(pagedTable.getPreferredSize().width, mouseevent.getY() + verticalTableScrollBar.getValue()));
if(pagedTable.getRowCount() == 0 || i < 0)
{
return -1;
} else
{
i = i <= pagedTable.getRowCount() - 1 ? i : pagedTable.getRowCount() - 1;
i = i >= 0 ? i : 0;
i++;
return i;
}
}
private Point getPoint(MouseEvent mouseevent)
{
Point point = verticalTableScrollBar.getLocationOnScreen();
int i = (point.y + verticalTableScrollBar.getSize().height) - win.getPreferredSize().height;
int j = point.y;
int k = point.x - win.getPreferredSize().width;
int l = point.y + mouseevent.getY() <= i ? point.y + mouseevent.getY() >= j ? point.y + mouseevent.getY() : j : i;
return new Point(k, l);
}
private LineNumTip createWin()
{
if(win == null)
return new LineNumTip();
else
return win;
}
public JScrollBar getVerticalScrollBarEx()
{
return verticalTableScrollBar;
}
public JTable getTable()
{
return pagedTable;
}
public void destroy()
{
pagedTable = null;
if(verticalTableScrollBar != null)
{
MemoryMgr.clearMouseListener(verticalTableScrollBar);
MemoryMgr.clearMouseMotionListener(verticalTableScrollBar);
}
verticalTableScrollBar = null;
if(win != null)
win.destroy();
win = null;
}
JTable pagedTable;
private boolean init;
JScrollBar verticalTableScrollBar;
LineNumTip win;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -