java - 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);
}
现在的样子:
解决方案
使用玻璃窗格,示例代码片段:
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);
推荐阅读
- android - 如何使用 Flutter “package:flutter_android/android_telephony.dart'”?
- swift - 使用 Firestore 中的 getDocuments 在完成处理程序中一次获取所有文档
- node.js - ES6文件结构的expressjs配置
- r - 选择带有闪亮的选项卡时运行 SQL
- flutter - 当 TextField 值更改时 Flutter FutureBuilder 刷新
- react-native - 如何在反应导航中设置标题样式
- mysql - 当我尝试添加 ON DELETE SET NULL 时出现错误,但在 SQL(mysql 服务器)中添加 ON DELETE CASCADE 时不会出现
- javascript - 如何在Vue中将列表中的一个条目作为道具传递
- python - 将 Python Drake 转换为 C++ Drake
- linux - Qt5 几乎等同于 GTK3 GtkPaned