首页 > 解决方案 > Java JXBrowser:是否可以绘制 JXBrowser 组件?

问题描述

我只是想知道是否可以在 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);

}

现在的样子:

第一的

我想要达到的目标: 第二

标签: javagraphicspaintpaintcomponentjxbrowser

解决方案


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

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);

推荐阅读