`
wxq594808632
  • 浏览: 262458 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

swing模仿web锚点效果

阅读更多

 



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
分享到:
评论

相关推荐

    微信小程序实现锚点效果,方法简单实用!

    在微信小程序开发中,实现页面内的锚点效果可以让用户快速定位到页面的特定区域,提升用户体验。本教程将深入探讨如何在微信小程序中简洁高效地实现这一功能。 首先,我们需要理解锚点的基本原理。在HTML中,锚点是...

    实现锚点的带动画效果

    锚点结合动画效果可以为用户体验增添一份动态美感,使其更加流畅和吸引人。本文将深入探讨如何实现锚点的带动画效果,并提供相关实践方法。 一、理解锚点基础 1. 锚点定义:锚点是HTML中的`&lt;a&gt;`标签的一种特殊用法...

    jQuery页面滚动显示浮动菜单栏锚点定位效果

    本主题聚焦于利用jQuery实现一个特定的功能——当页面滚动时,展示一个浮动菜单栏,并实现锚点定位效果。这个功能对于提高用户体验,尤其是内容丰富的长页面,是非常有用的,因为它可以帮助用户快速导航到页面的不同...

    锚点导航栏效果

    在本例中,"锚点导航栏效果"实现的关键在于JavaScript或jQuery的运用。当用户点击导航栏的某个链接时,我们需要监听这个点击事件,并通过改变`window.location.hash`来实现页面滚动。下面是一个简单的JavaScript示例...

    简单的用jquery仿a锚点连接的效果

    本教程将讲解如何使用jQuery模拟A锚点连接的效果。 首先,我们需要理解HTML的基础结构。一个基本的A锚点连接是通过`&lt;a&gt;`标签定义的,它的`href`属性指向页面内的某个ID。例如: ```html 跳转到Section 1 这是...

    jQuery页面内滑动到锚点导航效果,回到顶部

    接下来,我们利用jQuery来实现平滑滚动到锚点的效果。这通常涉及到`animate()`函数,它可以控制元素的CSS属性变化,如滚动位置。以下是一个简单的示例: ```javascript $(document).ready(function() { $('a[href^...

    js实现做通讯录的索引滑动显示效果和滑动显示锚点效果

    在前端开发中,实现通讯录索引的滑动显示效果和滑动显示锚点效果是一项常见的功能。本文将详细介绍如何使用JavaScript来实现这样的效果,涉及到的知识点包括JavaScript事件监听、触摸事件处理、页面滚动监听、以及...

    JS锚点平滑跳转

    JavaScript 锚点平滑跳转是一种在网页中实现页面内部导航时提供平滑过渡效果的技术。传统的HTML锚点链接可以直接跳转到页面内的某个特定位置,但这种跳转通常是瞬间完成,缺乏用户体验上的平滑性。JS锚点平滑跳转则...

    GEF锚点鼠标定位

    在图形编辑框架(GEF,Graphical Editing Framework)中,锚点(Anchor)是一个关键概念,它是连接模型元素之间的连接线在元素上的固定点。在GEF中,锚点的定位直接影响到连接线的形状和行为,特别是当用户通过鼠标...

    完整版设置控件锚点.rar

    - 在Web开发中,CSS的Flexbox和Grid布局也提供了类似的功能,通过设置元素的margin、padding和flex-grow/flex-shrink属性,可以实现响应式的布局。 - 在移动应用开发中,如iOS的Auto Layout和Android的...

    jQuery锚点动画跳转顶部效果

    jquery锚点带动画跳转返回顶部特效,可定位到网页的相应模块,多种方式回到网页顶部效果,第一种方式是最初打开页面的时候,点击最上边的导航按钮,可进入本页面相应的区域。第二种方式是,拖动滚动条之后,网页右侧...

    台湾地图锚点.html

    台湾地图锚点

    JS如何实现在页面上快速定位(锚点跳转问题)

    JS实现页面快速定位的技术主要涉及锚点跳转的概念和应用。锚点,也被称作片段标识符,其作用是允许用户点击链接后页面能够跳转到特定的位置。在网页设计中,尤其是在内容较多、页面较长的情况下,合理使用锚点可以...

    unity3d锚点快捷键脚本

    Unity3D是一款强大的跨平台3D游戏开发引擎,被广泛应用于游戏、虚拟...通过有效的锚点设置,开发者可以确保UI在不同设备上保持一致的视觉效果和交互体验,而快捷键脚本则能进一步加速这一过程,使开发工作更加流畅。

    vue实现吸顶、锚点和滚动高亮按钮效果

    在重构后台管理系统时,有时我们需要实现一些增强用户体验的功能,比如吸顶效果、锚点定位以及滚动时按钮的高亮显示。这些功能在商品管理、内容导航等领域非常常见,尤其在电商网站上,能够帮助用户更便捷地浏览和...

    古木设定控件锚点例程.rar

    例如,使用ConstraintLayout时,可以使用`app:layout_constraintStart_toStartOf`、`app:layout_constraintEnd_toEndOf`等属性来定义控件与其它元素或父布局的相对位置,从而实现锚点效果。 3. **iOS中的锚点** ...

    jQuery锚点带动画跳转特效.zip

    jQuery锚点带动画跳转特效是一种常见的网页交互设计,它能够使用户在页面内点击链接时,不仅快速定位到相应内容,还能配合动画效果,提升浏览体验。尤其在购物商城网站、素材网站等需要频繁定位模块的场景下,这种...

    html页面锚点跳转

    html页面锚点跳转

    <jQuery>导航的滚动锚点

    在网页设计中,导航是用户在页面间跳转的重要工具,而滚动锚点则是导航功能的一种增强,使得用户可以通过点击导航菜单直接跳转到页面内的特定位置。在jQuery库的支持下,实现滚动锚点变得更加简单高效。本文将深入...

    易语言古木设定控件锚点例程

    在这个“古木设定控件锚点例程”中,开发者可能实现了一个功能,允许用户通过程序动态设定控件的锚点,这样在程序运行过程中,用户界面可以保持良好的布局效果。此外,描述中提到的“水平均分子控件”和“垂直均分子...

Global site tag (gtag.js) - Google Analytics