栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在多边形上显示浮动工具提示文本

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在多边形上显示浮动工具提示文本

对于此用法,“如何使用工具提示”建议重写

getToolTipText()
封闭方法
JComponent
。此答案概述了JMapViewer和的方法
ChartPanel
。在下面的例子中,
getToolTipText()
简单地返回的任何名称Shape即
contains()
触发鼠标事件。为了进行比较,JLabelat窗口的底部使用了常规的技巧提示
setToolTipText()

import java.awt.BasicStroke;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.EventQueue;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Polygon;import java.awt.Shape;import java.awt.event.MouseEvent;import java.awt.geom.Ellipse2D;import java.util.ArrayList;import java.util.List;import javax.swing.Jframe;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.ToolTipManager;public class ShapeToolTip {    private static class ShapePanel extends JPanel {        private final List<Shape> list = new ArrayList<>();        public ShapePanel() { Polygon p = new Polygon(); p.addPoint(500, 100); p.addPoint(500, 400); p.addPoint(200, 400); list.add(p); list.add(new Ellipse2D.Double(100, 100, 200, 200)); ToolTipManager.sharedInstance().registerComponent(this);        }        @Override        public String getToolTipText(MouseEvent e) { for (Shape shape : list) {     if (shape.contains(e.getX(), e.getY())) {         return shape.getClass().getName();     } } return "Outside";        }        @Override        protected void paintComponent(Graphics g) { super.paintComponent(g); g.setColor(Color.blue); Graphics2D g2d = (Graphics2D) g; g2d.setStroke(new BasicStroke(2)); for (Shape shape : list) {     g2d.draw(shape); }        }        @Override        public Dimension getPreferredSize() { return new Dimension(640, 480);        }    }    private void display() {        Jframe f = new Jframe("ShapeToolTip");        f.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);        f.add(new ShapePanel());        JLabel title = new JLabel("Shape Tool Tip", JLabel.CENTER);        title.setToolTipText("Title");        title.setFont(title.getFont().deriveFont(Font.BOLD, 24));        f.add(title, BorderLayout.SOUTH);        f.pack();        f.setLocationRelativeTo(null);        f.setVisible(true);    }    public static void main(String[] args) {        EventQueue.invokeLater(new ShapeToolTip()::display);    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/369286.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号