java - 保持图形屏幕

标签 java swing

在我的程序中,我有一个从 JPanel 扩展的类 GraphDisplay ,用于创建图形...在其构造函数中,我有一个函数 display() ,它创建我想要的所有内容,包括用于收听的按钮...

在其他一些类MainGUI中,我在用户进行对话框操作后创建了上述类的对象,发生的情况是上述类对象被创建并在消失之前显示几分之一秒。 ...

有没有一种方法可以告诉 MainGUI 等待上面对象的输入而不是关闭......

GraphDisplay 是这样的......

public class GraphDisplay extends JPanel {

    private static final long serialVersionUID = 1L;

    GraphDisplay(String source , String destination , List<Node> nodes , List<GUIEdge> edges , List<GUIEdge> spanedges) 
    {
         //assigning values
         this.display();
    }

    public void display() {
        frame1 = new JFrame();
        frame1.setSize(400,400);
        frame1.setVisible(true);
        frame1.setLayout(new FlowLayout(FlowLayout.LEFT));
        frame1.setBackground(Color.lightGray);
        frame1.repaint();
        JButton next = new JButton("NEXT");
        next.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
                    System.out.println("Hello");
            }
    });

    }

    public void paintComponent(Graphics g) {
       //does some painting
    }

谢谢

最佳答案

如果您想在 JPanel 上绘制内容,您应该重写 paintComponent(Graphics) 方法。每次 JPanel 需要绘制自身时都会自动调用它。

@Override
public paintComponent(Graphics g){
    super.paintComponent(g);
    g.drawLine(...);
    g.drawOval(...);
    /*Other stuff*/
}
<小时/>

您正在 JPanel 中创建 JFrame。我可以给你的最基本的例子如下,我想你可以看到问题:

public class Test extends JFrame{
    public static void main(String[] args){
        JFrame frame = new JFrame();
        MyPanel myPanel = new MyPanel();
        frame.add(myPanel);

        frame.pack();
        frame.setVisible(true);
    }

}

class MyPanel extends JPanel{
    @Override
    public void paintComponent(Graphics g){
        g.drawLine(10, 10, 100, 100);
    }
}

关于java - 保持图形屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5391782/

相关文章:

java - 如何使用 jBCrypt 进行密码哈希比较?

java - 使用客户端身份验证实现 java SSL 和 TLS 服务器套接字

java - 从 ResultSet 元数据获取 "group by"信息

java - setFrameIcon 的动态 ImageIcon 缩减

java - 在java中使用JPanel时,如何将一个类中的用户输入数据显示到另一个类中

java - 需要 java applet 来帮助测试屏幕阅读器

java - 为什么我随机选择的数字的输出包含重复项?

java - 如何修复 Android 上应用程序启动时崩溃的问题

java - 如何在窗口大小调整时保持 JTable 自定义渲染器的外观?

java - 外部 JPanle 不显示在 JFrame 上