【问题标题】:Java JXBrowser: Is it possible to draw over the JXBrowser Component?Java JXBrowser:是否可以绘制 JXBrowser 组件?
【发布时间】:2019-05-23 07:08:35
【问题描述】:

我只是想知道是否可以在 JXBrowser 组件上进行绘制?我在互联网上搜索,发现使用的 BrowserView 继承了paintcomponents等。但我似乎无法让它工作。

代码如下:

        public test() {
    browser = new Browser();
    view = new BrowserView(browser);

    JPanel panel = new JPanel();
    panel.setLayout(new BorderLayout());
    panel.add(view, BorderLayout.CENTER);

    test = new JButton("Open FOE");
    test.addActionListener(this);
    test1 = new JButton("Helpen");
    test1.addActionListener(this);
    test1.setMaximumSize(new Dimension(90, 20));
    JPanel panel1 = new JPanel();
    panel1.setLayout(new BoxLayout(panel1, BoxLayout.Y_AXIS));
    panel1.add(test);
    panel1.add(Box.createRigidArea(new Dimension(0, 15)));
    panel1.add(test1);

    JPanel panel2 = new JPanel();
    panel2.setLayout(new BorderLayout());
    panel2.add(panel, BorderLayout.CENTER);
    panel2.add(panel1, BorderLayout.EAST);

    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    frame.add(panel2);
    frame.setSize(1500, 1000);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);

}

现在的样子:

我想要达到的目标:

【问题讨论】:

  • 在框架顶部安装一块玻璃板,然后画出你想要的任何东西。
  • 我从未使用过玻璃板。它会通过 BrowserView 吗?它不会搞砸浏览器吗?
  • 如果你以正确的方式使用它,它应该可以工作。
  • 你能给我举个例子,你用玻璃板画在另一个组件上吗?
  • 由于无法将代码示例添加为注释,因此我将其添加为答案

标签: java graphics paint paintcomponent jxbrowser


【解决方案1】:

使用玻璃窗格, 示例代码片段:

JPanel glassPane = new JPanel()
    {
      @Override
      protected void paintComponent(Graphics g)
      {
        super.paintComponent(g);
        g.drawString("Test",100,100);
        g.setColor(Color.BLUE);
        g.drawRect(300,300,300,300);
      }
    };

    glassPane.setOpaque(false);   
    frame.getGlassPane().setVisible(true);

    frame.setGlassPane(glassPane);
    frame.setVisible(true);

【讨论】:

  • 谢谢我回家试试
  • 只需用这些代码片段替换你的最后一行并测试它
  • 我按照你说的做了,但是蓝色矩形画在浏览器下面。当我启动应用程序时,我看到蓝色矩形一秒钟,然后浏览器出现,蓝色矩形消失了。
  • 我没有使用过 JXbroser,所以它可能是一个重量级的组件,可能你的弹出菜单也将隐藏在这个 JXBrowser 下,我有一个建议创建一个新类,它是 Browser 的子类,并覆盖paint(Graphics g) 方法并调用 super.paint 方法,然后尝试绘制一些东西。
  • 我会试试的,比如测试类扩展浏览器等..?
猜你喜欢
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 2017-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-21
相关资源
最近更新 更多