import java.awt.BorderLayout;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
/**
*
* @author Administrator
*/
public class TestScroll extends JFrame {
private JButton[] buttons = new JButton[100];
private JScrollPane js = new JScrollPane();
public TestScroll() {
init();
}
private void init() {
setTitle("swing模仿web锚点效果");
setSize(300, 300);
setLocationRelativeTo(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
JSplitPane jSplitPane = new JSplitPane();
jSplitPane.setDividerLocation(140);
jSplitPane.setLeftComponent(getTree());
jSplitPane.setRightComponent(getPanel());
this.add(jSplitPane);
}
private JScrollPane getPanel() {
JPanel jpanel = new JPanel();
jpanel.setLayout(new BoxLayout(jpanel, BoxLayout.Y_AXIS));
for (int i = 0; i < 100; i++) {
JButton button = new JButton("button" + i);
jpanel.add(button);
buttons[i] = button;
}
js.setViewportView(jpanel);
return js;
}
private JScrollPane getTree() {
JScrollPane scroll = new JScrollPane();
final JTree tree = new JTree();
DefaultMutableTreeNode node = new DefaultMutableTreeNode("序号");
for (int i = 0; i < 100; i++) {
node.add(new DefaultMutableTreeNode(i));
}
DefaultTreeModel tmode = new DefaultTreeModel(node);
tree.setModel(tmode);
tree.addTreeSelectionListener(new TreeSelectionListener() {
@Override
public void valueChanged(TreeSelectionEvent e) {
//关键代码
String path = tree.getLastSelectedPathComponent().toString();
int y = 0;
try {
y = Integer.parseInt(path);
} catch (NumberFormatException n) {
//do Nothing
}
JScrollBar bar = js.getVerticalScrollBar();
bar.setValue(buttons[y].getY());
}
});
scroll.setViewportView(tree);
return scroll;
}
public static void main(String[] args) {
TestScroll t = new TestScroll();
t.setVisible(true);
}
}
截图:
- 大小: 15.2 KB
分享到:
相关推荐
微信小程序实现锚点效果,方法简单实用!
实现锚点的带动画效果,实现锚点的带动画效果,实现锚点的带动画效果
jQuery页面内滑动到锚点导航效果,回到顶部
jQuery页面滚动显示浮动菜单栏锚点定位效果
简单实用的用jquery仿a锚点连接的效果,HTML结构清晰,可以拿来就用
固定在页面右侧的锚点链接导航菜单,点击对应的导航栏目页面自动滚动到对应的锚链接名所在的位置
下面小编就为大家带来一篇js实现做通讯录的索引滑动显示效果和滑动显示锚点效果。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
jquery锚点带动画跳转返回顶部特效,可定位到网页的相应模块,多种方式回到网页顶部效果,第一种方式是最初打开页面的时候,点击最上边的导航按钮,可进入本页面相应的区域。第二种方式是,拖动滚动条之后,网页右侧...
台湾地图锚点
导航的滚动锚点
JS锚点平滑跳转,详见下载包说明!
因公司后台管理系统很多功能技术老旧,最近在用vue重构公司的后台管理系统,在做商品管理添加商品这一块,借鉴淘宝的添加商品的交互,需要实现一个简单的吸顶、锚点和滚动高亮按钮的效果。 需求 滚动页面到顶部,...
js锚点定位 js锚点定位js锚点定位js锚点定位js锚点定位js锚点定位
html页面锚点跳转
实现gef模型连线间锚点的定位实现鼠标位置定位,就是鼠标在哪里,他的锚点就会在哪里!
个人简历滚动定位类锚点定位效果源码下载
微信小程序 外卖:实现类似锚点功能 (源码)微信小程序 外卖:实现类似锚点功能 (源码)微信小程序 外卖:实现类似锚点功能 (源码)微信小程序 外卖:实现类似锚点功能 (源码)微信小程序 外卖:实现类似锚点功能 (源码)...
jQuery锚点带动画跳转特效是一款非常实用的特效,实现了jquery锚点带动画跳转和返回顶部,适用于购物商城网站、素材网站,方便定位到相应的模块,增强用户体验效果。
jquery html锚点链接_a标签当前页面锚点_a标签锚点
易语言模块窗口-控件锚点.rar 易语言模块窗口-控件锚点.rar 易语言模块窗口-控件锚点.rar 易语言模块窗口-控件锚点.rar 易语言模块窗口-控件锚点.rar 易语言模块窗口-控件锚点.rar