我正在使用GraphStream库。目前,当我运行我的程序时,它会为我的图形打开新窗口并为我的图形打开单独的窗口。我尝试创建一个JFrame
并将JBoard
添加到JFrame
中,之后我尝试将图形添加到我的JBoard
中,但它说图形对象不是组件。
这是我的代码:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import org.graphstream.graph.*;
import org.graphstream.graph.implementations.*;
public class GraphExplore {
static Connection conn2;
static String result, result2;
static JFrame frame;
static JPanel panel;
public static void main(String args[]) throws SQLException {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
showData();
} catch (SQLException e) {
e.printStackTrace();
}
}
});
}
private static void showData() throws SQLException {
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(30, 50, 1300, 600);
panel = new JPanel();
panel.setBorder(new EmptyBorder(5, 5, 5, 5));
panel.setLayout(new BorderLayout(0, 0));
frame.setContentPane(panel);
Graph graph = new SingleGraph("tutorial 1");
graph.setAutoCreate(true);
graph.setStrict(false);
graph.display();
// panel.add(graph);
try {
Class.forName("org.h2.Driver");
conn2 = DriverManager.getConnection("jdbc:h2:file:G:/hs_data/h2_db/test", "sa", "sa");
} catch (Exception e) {
e.printStackTrace();
}
Statement stmt2 = conn2.createStatement();
ResultSet rs2 = stmt2.executeQuery("SELECT ANUMBER,BNUMBER,DATETIME FROM TEST");
while (rs2.next()) {
result = rs2.getString("ANUMBER");
result2 = rs2.getString("BNUMBER");
graph.addNode(result);
graph.addNode(result2);
int i;
for (i = 0; i < 200; i++)
graph.addEdge("string" + i, result, result2);
// JOptionPane.showMessageDialog(null, i);
}
for (Node node : graph) {
node.addAttribute("ui.label", node.getId());
}
}
}
此程序为jframe
和图形打开单独的窗口。我想将我的图形显示在我的JFrame
或JPanel
。你知道怎么做吗?我看过这个链接,但它不能很好地解释我。
如图可视化:高级视图:将查看器集成到您的GUI中所示,“您需要自己创建查看器。”此外,在构建框架后调用setViable()
。
它在frame.add(view)
上显示错误。
看起来引用的教程有点过时。Viewer
方法addDefaultView()
现在返回一个ViewBoard
,它可以添加到Container
中。在下面的完整示例中,在具有GridLayout
的封闭JGroup
上设置边框,并将该面板
添加到框架中。另请注意,需要通过覆盖getPreferredSize()
来为面板
提供首选大小。调整窗口大小以查看效果。
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import org.graphstream.graph.*;
import org.graphstream.graph.implementations.*;
import org.graphstream.ui.swingViewer.*;
import org.graphstream.ui.view.*;
/** @see https://stackoverflow.com/a/45055683/230513 */
public class GraphSwing {
public static void main(String args[]) {
EventQueue.invokeLater(new GraphSwing()::display);
}
private void display() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel(new GridLayout()){
@Override
public Dimension getPreferredSize() {
return new Dimension(640, 480);
}
};
panel.setBorder(BorderFactory.createLineBorder(Color.blue, 5));
Graph graph = new SingleGraph("Tutorial", false, true);
graph.addEdge("AB", "A", "B");
Node a = graph.getNode("A");
a.setAttribute("xy", 1, 1);
Node b = graph.getNode("B");
b.setAttribute("xy", -1, -1);
Viewer viewer = new Viewer(graph, Viewer.ThreadingModel.GRAPH_IN_GUI_THREAD);
ViewPanel viewPanel = viewer.addDefaultView(false);
panel.add(viewPanel);
frame.add(panel);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
问题内容: 我已经构建了自己的自定义react-bootstrap Popover组件: 该组件的呈现方式如下: 现在,我想向组件中添加自定义道具,例如:我的文字,并使用新道具在弹出框中设置一些内容,例如- 但随后我在浏览器中收到此警告: 警告:标签上的未知道具。从元素中删除这些道具。 现在,我想我可以删除零件并逐个插入所有原始道具,而无需自定义道具,但是这样我就失去了“淡入淡出”效果,这也是处理
我有一个从sqlite数据库接收阵列的基本适配器: 并在异步中填充它: 但我不知道如何为每个条目添加图像,请注意,图像位于文件夹中,图像的名称属于每个条目,例如对于条目管理,在/storage/sdcard/pictures/admin_image1中有一个图像。jpg。因此,当我有条目的名称时,我可以将图像绑定到特定条目。 我需要的是如何将图像添加到此适配器,这里我发布了主要活动和适配器代码,抱
问题内容: 我有一个gui,它的Panel包含一系列标签和TextField,并使用spring布局(这是mainPanel),而另一个Panel仅包含button(buttonPanel)。我正在尝试使我的mainPanel也具有垂直滚动条。我想实现我的GUI,以便在JFrame中有2个面板。mainPanel出现在框架的顶部,而buttonPanel出现在mainPanel的下方。 我的问题是
我正在尝试将此 JPanel 添加到 JFrame 中,但我看不到他。当我创建新的 java 类并自己制作这个框架时,一切都很好。 来自JFrame表单的代码。 来自 JPanel 的代码: 来自Java类的代码。 我想不出区别在哪里。有人能帮我吗?
我正在创建一个swing应用程序,并希望将JfreeChart添加到JPanel中。我创建了一个方法,在该方法中我创建了如下所示的图表: 创建了一个全局变量: 由于某种原因,当我点击按钮时,图表没有显示出来。
我目前有一个主JFrame包含几个JPanels,每个面板中都有一些文本。创建JPanels的代码在一个单独的类中(它“实现”JPanels)。如何仅向单个面板添加JScrollPane? 我已经花了一些时间尝试这样做,但什么也没有发生。顺便说一下,我的JPanel使用GridLayout 上面的类是另一个面板类的实例变量,它是主面板“MenuHold”的实例变量。但使用“MenuHolder”的