⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 graphw.java

📁 最小生成树 支持鼠标点击生成结点 并且动态生成最小树
💻 JAVA
字号:
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.util.EventObject;
import javax.swing.*;

public class GraphW extends Applet
    implements  ActionListener, MouseListener
{


    private vertexGroup theVertexGroup;
    private boolean wasClearPressed;
    private int GPNumber;
    private boolean isNumber;
    private TextField tf;
    private Button newButton;
    private Button treeButton;
    private Button viewButton;

    public void init()
    {   
        wasClearPressed = false;
        GPNumber = -1;
        isNumber = false;
        tf = new TextField("", 4);

        addMouseListener(this);
        setLayout(new FlowLayout());
        Panel panel = new Panel();
        add(panel);
        panel.setLayout(new FlowLayout());
        Panel panel1 = new Panel();
        panel.add(panel1);
        panel1.setLayout(new FlowLayout(0));
        newButton = new Button("New");
        panel1.add(newButton);
        newButton.addActionListener(this);
        treeButton = new Button("Tree");
        panel1.add(treeButton);
        treeButton.addActionListener(this);
        viewButton = new Button("View");
        panel1.add(viewButton);
        viewButton.addActionListener(this);
        Panel panel2 = new Panel();
        panel.add(panel2);
        panel2.setLayout(new FlowLayout(2));
        panel2.add(new Label("Enter number: "));
        panel2.add(tf);
        theVertexGroup = new vertexGroup();
        repaint();
    }



    public void paint(Graphics g)
    {
        theVertexGroup.draw(g);
    }

    public void update(Graphics g)
    {
        paint(g);
    }

    public void actionPerformed(ActionEvent actionevent)
    {
        if(actionevent.getSource() == newButton)
        {
            if(wasClearPressed)
            {
                wasClearPressed = false;
                theVertexGroup = new vertexGroup();
            } else
            {
                wasClearPressed = true;
                theVertexGroup.warningNew();
            }
        } else
        if(actionevent.getSource() == treeButton)
        {
            theVertexGroup.mst();
            wasClearPressed = false;
        } else
        if(actionevent.getSource() == viewButton)
        {
            theVertexGroup.changeView();
            wasClearPressed = false;
        }
        repaint();

    }



    public void mousePressed(MouseEvent mouseevent)
    {
        int i = mouseevent.getX();
        int j = mouseevent.getY();
        wasClearPressed = false;
        if(mouseevent.getClickCount() == 1)
            theVertexGroup.startDrag(i, j);
        else
        if(mouseevent.getClickCount() == 2)
            theVertexGroup.makeVertex(i, j);
        repaint();
    }

    public void mouseReleased(MouseEvent mouseevent)
    {
        int i = mouseevent.getX();
        int j = mouseevent.getY();
        String s = tf.getText();
        isNumber = true;
        try
        {
            GPNumber = Integer.parseInt(s);
        }
        catch(NumberFormatException _ex)
        {
            isNumber = false;
        }
        theVertexGroup.endDrag(isNumber, GPNumber, i, j);
        isNumber = false;
        tf.setText("");
        repaint();
    }

    public void mouseEntered(MouseEvent mouseevent)
    {
    }

    public void mouseExited(MouseEvent mouseevent)
    {
    }

    public void mouseClicked(MouseEvent mouseevent)
    {
    }

    public static void main(String args[])
    {
        GraphW gw=new GraphW();
        gw.init();  
        JFrame frame=new JFrame();
        frame.add(gw);
        frame.setResizable(false);
        frame.setTitle("[052473]毕洪宇");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(450,310);       
        frame.setVisible(true);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -