【问题标题】:How a line works as Swing button?一条线如何用作 Swing 按钮?
【发布时间】:2012-09-27 18:55:57
【问题描述】:

我正在创建线条和其他组件,并希望它们像 Swing 按钮事件一样响应,因为线条是可点击的:

    class CustomLine extends JComponent {

        private int destx = 100;
        private int desty = 100;
        private int startx = 0;
        private int starty = 0;

        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.drawLine(startx, starty, destx, desty);
        }

    }

这是如何工作的?

【问题讨论】:

  • 你是想画斜线还是只需要横竖线?

标签: java swing repaint paintcomponent mouse-listeners


【解决方案1】:

这将是一道数学题。您需要找到线的方程,然后找到与点的距离(鼠标单击)。
数学已为您完成,例如here

您还需要弄清楚如何处理鼠标events

【讨论】:

    【解决方案2】:

    从 JButton 扩展它怎么样? 只需像使用 JComponent 一样覆盖paint-Method 并像普通按钮一样使用它。 我不确定,如果你也需要改变边界。我不熟悉更改 GUI 元素,但也许这应该可以解决问题。

    【讨论】:

    • 这样以对角线为对角线的整个矩形都可以点击。
    • 只是在发布此内容后自己尝试了一下,发现同样的事情。太容易了,我猜:/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    • 1970-01-01
    • 2015-02-09
    • 2012-11-13
    相关资源
    最近更新 更多