Java JXBrowser: возможно ли нарисовать поверх компонента JXBrowser? - PullRequest
0 голосов
/ 23 мая 2019

Я просто хотел узнать, возможно ли закрасить компонент JXBrowser?Я искал в Интернете и обнаружил, что используемый BrowserView наследует компоненты рисования и т. Д. Но я не могу заставить его работать.

Вот код:

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

}

Как это выглядитсейчас:

First

Чего я хочу достичь: Second

1 Ответ

0 голосов
/ 23 мая 2019

Используйте стеклянную панель, фрагмент кода образца:

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