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

📄 mypanel.java

📁 用c编写的数据内部排序方法,可在窗口中选择多种排序方法,如快排,冒泡,折半插入等,还可以选择排序数据的个数,初态,控制等.
💻 JAVA
字号:
package main;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.util.*;
import main.algorithm.*;

public class myPanel extends JPanel implements Observer{
	Gracie temp;
	JLabel result=new JLabel("结果",JLabel.CENTER);
	Container parent;
	Data data;
	int width,height;
	String name,command;
	
	public myPanel(String[] str,Observable data,Observer resultO,JPanel parent) {
		width=150;
		height=280;
		this.name=str[0];
		this.command="main.algorithm."+str[1];
		data.addObserver(this);
		this.data=(Data)data;
		this.parent=parent;
		try{
			setBackground(Color.white);
			setBorder(new TitledBorder(name));
			temp=(Gracie)(Class.forName(command).newInstance());
			temp.init(this.data.getArray());
			temp.setParent(this);
			temp.addObserver(resultO);
			setLayout(new BorderLayout());
			result.setBorder(new LineBorder(Color.black));
			add(((JPanel)temp),BorderLayout.CENTER);
			add(result,BorderLayout.SOUTH);
			validate();
		}
		catch(Exception e){e.printStackTrace();}
		addMouseListener(new MouseAdapter(){
			public void mousePressed(MouseEvent e){
				if(e.getClickCount()==2){
					if(!temp.getState()){
						temp.init(myPanel.this.data.getArray());
						temp.setState(true);
					}
					else{
						temp.setState(false);
					}
				}
			}});
	}
	
	public void update(Observable data,Object arg){
		temp.init(this.data.getArray());
		validate();
	}
	
	public void start(){
		temp.init(data.getArray());
		temp.setState(true);
	}
	public void stop(){
		temp.setState(false);
	}
	
	public Dimension getPreferredSize(){
		return new Dimension(width,height);
	}
	
	public Dimension getMinimumSize(){
		return new Dimension(150,height);
	}
	
	public Dimension getMaximumSize(){
		return new Dimension(150,height);
	}
	
	public boolean equals(Object o){
		return name.equals(((myPanel)o).name);
	}
	
	public void finalize(int a){
		data.deleteObserver(this);
		if(a!=-1){
			parent.remove(a);
			parent.validate();
			parent.repaint();
		}
	}
}

⌨️ 快捷键说明

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