Table model met een Jbuton en actionlistener

Status
Niet open voor verdere reacties.

kenikavanbis

Terugkerende gebruiker
Lid geworden
22 mei 2007
Berichten
2.195
Dus ik heb een tabel die word gevuld met waarden (vector) maar als ik dan druk op de knop doet hij niets maar ik zie niet waar ik mis (line 53)

PHP:
package be.djdb.dualfile.sys2.table;

import java.awt.event.ActionListener;
import java.io.File;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.swing.JButton;
import javax.swing.table.AbstractTableModel;

import be.djdb.Statics;
import be.djdb.UnConstruct;
import be.djdb.dualfile.sys2.MyFileItem;

@UnConstruct
public class DeleteTableModel extends AbstractTableModel {
	private static final long serialVersionUID = 1L;
	private Vector<MyFileItem> todel = new Vector<MyFileItem>();
	private static final String columnNames[] = {"name", "Digest","delete" };
    public DeleteTableModel(Vector<MyFileItem> todel) {
		this.todel = todel;
	}
	public int getColumnCount() {
      return columnNames.length;
    }
    public synchronized void add(MyFileItem item) {
    	todel.addElement(item);
    }
    /*
     *  (non-Javadoc)
     * @see javax.swing.table.AbstractTableModel#getColumnName(int)
     */
    public String getColumnName(int column) {
      return columnNames[column];
    }
    /* (non-Javadoc)
     * @see javax.swing.table.TableModel#getRowCount()
     */
    public int getRowCount() {
      return todel.size();
    }
    /* (non-Javadoc)
     * @see javax.swing.table.TableModel#getValueAt(int, int)
     */
    public Object getValueAt(int row, int column) {     
      try {
    	  MyFileItem line = todel.elementAt(row);
	      if (column == 0) {
	        return line.filename; 
	      } else if (column == 1) {
	        return line.getdigest();
	      } else if (column == 2) {//Hier wordt de Jbutton gemaakt
	    	return new DelJButton(line.filename,new DeleteAction(line.getfullname()));
		  }
      }catch(ArrayIndexOutOfBoundsException ae){
    	  log(Level.ALL, "<ERROR: getValueAt>ArrayIndexOutOfBoundsException the row/col is not availeble");
      }catch(Exception e){
    	  log(Level.FINEST, "<ERROR: getValueAt> <FINEST>"+e+"</FINEST>");
      }
      return null;
    }
    /* (non-Javadoc)
     * @see javax.swing.table.AbstractTableModel#getColumnClass(int)
     */
    public Class getColumnClass(int c) {
        return getValueAt(0, c).getClass();
    }
    public boolean isCellEditable(int row, int col) {
        return false;    
    }
    /**public void setValueAt(Object value, int row, int col) {
    	
    }*/
	private static  void log(Level level, String msg ){
	    String tag ="";
	    Logger.getLogger(DeleteTableModel.class.getName()).log(level, tag + msg);
	}
    private void printDebugData() {
        int numRows = getRowCount();
        int numCols = getColumnCount();
        log(Level.FINEST,"-<start>-");
        for (int i=0; i < numRows; i++) {
            log(Level.FINEST,"    row " + i + ":");
            for (int j=0; j < numCols; j++) {
                log(Level.FINEST," + data[i][j]");
            }  
        }
        log(Level.FINEST,"-<end>-");
    }
}
class DelJButton extends JButton{
	private static final long serialVersionUID = -6568381789891475747L;
	public DelJButton() {
		super("delete");
		setEnabled(false);
	}
	public DelJButton(String lbl) {
		super("delete");
		setEnabled(false);
	}
	public DelJButton(String lbl, ActionListener action){
		super("delete");
		this.addActionListener(action);
	}
}
DeleteAction.java
Code:
package be.djdb.dualfile.sys2.table;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class DeleteAction implements ActionListener{
	private String fname;
	public DeleteAction(String fname) {
		this.fname = fname;
	}
	public void actionPerformed(ActionEvent evt) {
		System.out.println("test"+fname);
	}
}
 
Laatst bewerkt:
Ik geef wat bijkomende info zoals dit is mijn aanroep

Code:
package be.djdb.dualfile.sys2.table;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;

import be.djdb.Statics;
import be.djdb.utils.ProjectSettingsEditor;
import be.djdb.utils.Projectsettings;
import be.djdb.utils.table.OptionsTableModel;

public class Deletepanel extends JPanel{
	private static final long serialVersionUID = 709030836488571354L;
	private Projectsettings settings;
	private JTable table;
	private TableCellRenderer defaultRenderer;
	/**
	 * 
	 * 		
	 * options =new ActionListener(){
			public void actionPerformed(ActionEvent evt) {
				settings.SaveSettings();//this that all settings from the prog are saved
		        final JFrame frame = new JFrame();
		        frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		        MYpanel pnltools = new MYpanel();
		        pnltools.addpanelitem("editorpanel","ok",new JButton(),new ActionListener(){
		        	public void actionPerformed (ActionEvent e){
		        		settings.SaveSettings();//this wil save all settings
		        		frame.dispose();
		        	}});
		        pnltools.addpanelitem("editorpanel","cancel",new JButton(),new ActionListener(){
		        	public void actionPerformed (ActionEvent e){
		        		settings.LoadSettings();//this wil reload all settings
		        		frame.dispose();
		        	}});
		        frame.add(pnltools.getpanel("editorpanel"), BorderLayout.SOUTH);
		        JPanel editor = settings.getEditor();
		        frame.add(editor,BorderLayout.NORTH);
		        frame.setVisible(true);
		        frame.pack();
			}
		};
	 */
    public Deletepanel(Vector vector){
    	this(vector,new Dimension(250,250));//constuctor
    }
    public Deletepanel(Vector vector, Dimension size){
    	table = new JTable(new DeleteTableModel(vector));
		defaultRenderer = table.getDefaultRenderer(JButton.class);
	    table.setDefaultRenderer(JButton.class,new JTableButtonRenderer(defaultRenderer));
        table.setAutoCreateRowSorter(true);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
        table.setPreferredScrollableViewportSize(size);

        //table.set(true);
        add(new JScrollPane(table));
    }
    private  void log(Level level, String msg ){
        String tag ="<>>>>*"+Statics.LIBNAME+"-"+Statics.COPYRIGHTBY+"*<<<<>";
        Logger.getLogger(ProjectSettingsEditor.class.getName()).log(level, tag + msg);
    }
}
 
Het is niet voldoende om een JButton in de tableModel. De JTable is Model-View concept. In the model komt data en view de button.

De view van de table wordt gedaan door CellRenderers. Dus zal je er voor moeten zorgen dat voor de cellen waar de butten in moet staan Een eigen CellRenderer gebruikt. Dit kan je doen door getCellRenderer() te overriden in JTable.

Deze cell renderer kan JButton gebruiken voor het tekenen en het afhandelen van muis click.
 
Je opmerking deed me naar een oplossing komen
Iedereen mag missende files doorgeven die zet ik er dan onder
Ook mogelijk foute denkwijzen als ik te veel objecten zou maken en het geheel werkt samen met MY_LIBS.jar

deze laat dan mijn via een jpanel mijn jtable zien
Code:
public class Deletepanel extends JPanel{
	private static final long serialVersionUID = 709030836488571354L;
	private Projectsettings settings;
	private MyActionTable table;
	/**
	 * 
	 * 		
	 * options =new ActionListener(){
			public void actionPerformed(ActionEvent evt) {
				settings.SaveSettings();//this that all settings from the prog are saved
		        final JFrame frame = new JFrame();
		        frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		        MYpanel pnltools = new MYpanel();
		        pnltools.addpanelitem("editorpanel","ok",new JButton(),new ActionListener(){
		        	public void actionPerformed (ActionEvent e){
		        		settings.SaveSettings();//this wil save all settings
		        		frame.dispose();
		        	}});
		        pnltools.addpanelitem("editorpanel","cancel",new JButton(),new ActionListener(){
		        	public void actionPerformed (ActionEvent e){
		        		settings.LoadSettings();//this wil reload all settings
		        		frame.dispose();
		        	}});
		        frame.add(pnltools.getpanel("editorpanel"), BorderLayout.SOUTH);
		        JPanel editor = settings.getEditor();
		        frame.add(editor,BorderLayout.NORTH);
		        frame.setVisible(true);
		        frame.pack();
			}
		};
	 */
    public Deletepanel(Vector vector){
    	this(vector,new Dimension(600,1500));//constuctor
    }
    public Deletepanel(Vector vector, Dimension size){
    	table = new MyActionTable(new DeleteTableModel(vector));
    	table.setBounds(10,10,600,1500);
		table.getColumn("delete").setCellRenderer(new ButtonRenderer());
		table.getColumn("delete").setCellEditor(new BtnEditor(new JCheckBox()));
        add(new JScrollPane(table));
    }
    private  void log(Level level, String msg ){
        String tag ="<>>>>*"+Statics.LIBNAME+"-"+Statics.COPYRIGHTBY+"*<<<<>StreamManipulator";
        Logger.getLogger(Deletepanel.class.getName()).log(level, tag + msg);
    }
	class ButtonRenderer implements TableCellRenderer {
		private static final long serialVersionUID = 1608552702791284570L;
		public Component getTableCellRendererComponent(JTable table, Object value,boolean isSelected, boolean hasFocus, int row, int column) {
			return new JButton("delme");
		}
	}
	class BtnEditor extends DefaultCellEditor {
		private static final long serialVersionUID = -8288275145189943807L;
		public BtnEditor(JCheckBox checkBox) {
			super(checkBox);
		}
		public Component getTableCellEditorComponent(JTable table, Object value,
			boolean isSelected, int row, int column) {
			DeleteButton  button = new DeleteButton("delstart" +"x:"+row+"y:"+column);
			button.addDeleteAction((value == null) ? "" : value.toString());
			return button;
		}
	}
	class DeleteButton extends JButton{
		private boolean isdel = false;
		private String filename;
		public DeleteButton(String label) {
			super(label);
		}
		public void addDeleteAction(String fname){
			this.filename = fname;
			addActionListener(
					new ActionListener(){
						public void actionPerformed(ActionEvent event){
							if(!isdel){
							    File f = new File(filename);
							    if (!f.exists()){
							    	JOptionPane.showMessageDialog(null,"Delete: no such file or directory: "+filename);
							    }else if (!f.canWrite()){
							    	JOptionPane.showMessageDialog(null,"Delete: write protected: " + filename);
							    }else if (f.isDirectory()) {//String[] files = f.list(); if (files.length > 0)Delete: directory not empty: " + filename
							    	JOptionPane.showMessageDialog(null,"Delete: directory not empty:" + filename);
							    }else if (f.delete()) {
							    	setText("deleted");
							    	setBackground(Color.red);
							    	isdel = true;
							    }
							    }	
					}
					
			});
		}
	}
}
de Jtabel werkt dan met het model deletetablemodel
Code:
package be.djdb.dualfile.sys2.table;

import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JButton;
import javax.swing.JOptionPane;

import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;

import javax.swing.table.TableCellRenderer;

import com.sun.org.apache.bcel.internal.generic.NEW;

import be.djdb.Statics;
import be.djdb.dualfile.sys2.MyFileItem;
//class DeleteTableModelold extends AbstractTableModel {

public class DeleteTableModel extends AbstractTableModel {// extends DefaultTableModel {//
//	class DeleteTableModel extends DefaultTableModel{
	private static final long serialVersionUID = 1L;
	private Vector<MyFileItem> todel = new Vector<MyFileItem>();
	private static final String columnNames[] = {"name","location", "Digest","delete"};
    public DeleteTableModel(Vector<MyFileItem> todel) {
		this.todel = todel;	
	}
	public int getColumnCount() {
	      return columnNames.length;
    }
    public synchronized void add(MyFileItem item) {
    	todel.addElement(item);
    }
    /*
     *  (non-Javadoc)
     * @see javax.swing.table.AbstractTableModel#getColumnName(int)
     */
    public String getColumnName(int column) {
      return columnNames[column];
    }
    /* (non-Javadoc)
     * @see javax.swing.table.TableModel#getRowCount()
     */
    public int getRowCount() {
      return todel.size();
    }
    /* (non-Javadoc)
     * @see javax.swing.table.TableModel#getValueAt(int, int)
     */
    
    public Object getValueAt(int row, int column) {     
      try {
    	  MyFileItem line = todel.elementAt(row);
	      if (column == 0) {
	        return line.getname(); 
	      }else if (column == 1) {
	    	  return  line.filename;
	      }else if (column == 2) {
	        return new String(line.getdigest());
	      }else if (column == 3) {
	    	  return  line.filename;
	      }
      }catch(ArrayIndexOutOfBoundsException ae){
    	  log(Level.ALL, "<ERROR: getValueAt>ArrayIndexOutOfBoundsException the row/col is not availeble");
      }catch(Exception e){
    	  log(Level.FINEST, "<ERROR: getValueAt> <FINEST>"+e+"</FINEST>");
      }
      return null;
    }
    /* (non-Javadoc)
     * @see javax.swing.table.AbstractTableModel#getColumnClass(int)
     */
	public Class getColumnClass(int c) {
        return getValueAt(0, c).getClass();
    }
	public boolean isCellEditable(int row,int cols){
		return cols==2;
	}
	private static  void log(Level level, String msg ){
	    String tag ="<>>>>*"+Statics.LIBNAME+"-"+Statics.COPYRIGHTBY+"*<<<<>StreamManipulator";
	    Logger.getLogger(DeleteTableModel.class.getName()).log(level, tag + msg);
	}
}
hieronder het jframe
Code:
package be.djdb.dualfile.sys2.table;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;


import be.djdb.generators.MYpanel;


public class Todel extends JFrame{

	private JTable table;

	public Todel(Vector v) {
		super("test");
		//TableCellRenderer defaultRenderer;   
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        MYpanel pnltools = new MYpanel();
        
        pnltools.addpanelitem("d","ok",new JButton(),new ActionListener(){
        	public void actionPerformed (ActionEvent e){
        		dispose();
        	}});
        JPanel x= pnltools.getpanel("d");
        x.setSize(new Dimension(200,200));
        add(x, BorderLayout.SOUTH);
        //add(table, BorderLayout.CENTER);
        add(new Deletepanel(v),BorderLayout.NORTH);
        setVisible(true);
        pack();
	}
}
en alles werkt met een object myfileitem
Code:
public final class MyFileItem {
	public String filename;

	private static final long serialVersionUID = -2136846475227467746L;
    private byte[] digest;
    public MyFileItem(){
    	super();
    }
	public MyFileItem(String arg1){
		super();
		filename=arg1;
	}
    public String getfullname() {
		return filename;
	}
    public String getname() {
		return filename.substring(filename.lastIndexOf('\\'),filename.length());
	}
	public byte[] getdigest() {
		return digest;
	}
	public void setdigest(byte[]digest) {
		 this.digest = digest ;
	}
	public boolean digestcompare(MyFileItem file) {
		return digestcmp(this.digest,file.getdigest());
	}
    private boolean digestcmp(byte[] arg1, byte[] arg2){
        int i;
        if (arg1 == null || arg2 == null || arg1.length != arg2.length){
            return false;
        }else{
            for (i = 0; i < arg1.length && arg1[i] == arg2[i]; i++){;}
            return i == arg1.length;
        }
    }

}
dit is dan de aanroeper Dualfiledeletor
Code:
public class DualfileDeletor extends MYFORM{
    JPanel contentPane;
    JLabel statusBar;
    JProgressBar jProgressBar1 = new JProgressBar();
    Dualhashfinder finder;
    Vector files,todeletion;
    Thread th1;
    DefaultMutableTreeNode root = new DefaultMutableTreeNode("Duplicate Files");
    JButton PauseButton = new JButton();
    JButton StopButton = new JButton();
    JButton StartButton = new JButton();
    JButton ReportButton = new JButton();
    JCheckBox chkDelFiles = new JCheckBox();
    JCheckBox chkMD5 = new JCheckBox();
    JCheckBox chkSHA = new JCheckBox();
    private Boolean isdir= false;
    JCheckBox chkSubDir = new JCheckBox();
    private ActionListener OpenDirectory = new ActionListener() {//
		public void actionPerformed(ActionEvent evt) {
			isdir = choosedirectory();
			setGui(true);
		}
	};
	private ActionListener exit = new ActionListener() {//
		public void actionPerformed(ActionEvent evt) {
	        settings.SaveSettings();
	        System.exit(0);
		}
	};
	private ActionListener start = new ActionListener(){
		public void actionPerformed(ActionEvent evt) {
			 setGui(true);
			mystart();
			
		}
	};
	private ActionListener report = new ActionListener(){
		public void actionPerformed(ActionEvent evt) {
			if (!th1.isAlive()){
				files=null;
				Todel report=new Todel(todeletion);
			}
		}  
	};
	private ActionListener pauze = new ActionListener(){
		@SuppressWarnings({ "deprecation", "static-access" })
		public void actionPerformed(ActionEvent evt) {
			if (th1.isAlive()){
				PauseButton.setText("Pauze");
			}else{
				//th1.suspend();
				try {
					th1.sleep(1000);
				} catch (InterruptedException e) {}
				PauseButton.setText("Continue");
			}
			 setGui(false);
		}
	};
	private ActionListener stop = new ActionListener(){
		public void actionPerformed(ActionEvent evt) {
	        th1.stop(new ThreadStopExeption());
	        setGui(true);
		}
	};
	private ActionListener chkmd5action = new ActionListener(){
		public void actionPerformed(ActionEvent evt) {settings.set("MD5",chkMD5);}
	};
	private ActionListener chkshaaction = new ActionListener(){
		public void actionPerformed(ActionEvent evt) {settings.set("SHA", chkSHA);}
	}; 
	private ActionListener chkdeldualfiles = new ActionListener(){
		public void actionPerformed(ActionEvent evt) {settings.set("chkdeldualfiles", chkDelFiles);}
	};
	private ActionListener chkinsubdir = new ActionListener(){
		public void actionPerformed(ActionEvent evt) {settings.set("chkinsubdir", chkSubDir);}
	};
	private ActionListener options =new OptionAction(settings);
	private ActionListener delsettings =new ActionListener(){
		public void actionPerformed(ActionEvent evt) {
	        JFrame frame = new JFrame();
	        frame.add(panels.getpanel("options"),BorderLayout.CENTER);
	        frame.pack();
	        frame.setVisible(true);
		}
	};
	private MYpanel panels;
	private ImageIcon x;
	private boolean additem;
	JPanel tools;
    public DualfileDeletor(){
    	super("dual files", "mydelprog","mydelprog",false);
        try{
            if(!settings.isInit()){
            	setup();
            }
        	actions();
            gui();
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            pack();
            setVisible(true);
        } catch (Exception exception){
            exception.printStackTrace();
        }
    }
    private void mystart(){
    	finder = new Dualhashfinder(this);
        th1 = new Thread(finder);
        th1.start();
        //StartButton.setEnabled(false);
    }
	public static void main(final String[] args) {
        java.awt.EventQueue.invokeLater(new Runnable(){
            public void run(){
                new DualfileDeletor().setVisible(true);
            }
        }); 
	}
    /**
     * Component initialization.
     * @throws java.lang.Exception
     */
    private void gui() throws Exception{
    	statusBar = new JLabel();
    	setIconImage((new ImageIcon(DualfileDeletor.class.getResource("icon.png"))).getImage());
    	contentPane = (JPanel) getContentPane();
        contentPane.setLayout(new BorderLayout());
        setSize(new Dimension(500, 400));
        Menu menu= new Menu("Dualfile");
     	menu.addmenuitem("File","exit",new JMenuItem(),exit);
     	menu.addmenuitem("File","open",new JMenuItem(),OpenDirectory);
     	menu.addmenuitem("Edit","underconstruction",new JMenuItem());
     	menu.addmenuitem("Tools","options",new JMenuItem(),options);
     	menu.addmenuitem("Tools","delsettings",new JMenuItem(),delsettings);
     	menu.addmenuitem("Window","underconstruction",new JMenuItem());
     	menu.addmenuitem("Help","underconstruction",new JMenuItem());
     	setJMenuBar(menu.getmenubar());
        statusBar.setBounds(new Rectangle(1, 292, 408, 19));
        statusBar.setText("hoi hoi hier ben ik");
        panels = new MYpanel("Dualfile");
        setGui(true);
        ReportButton.setEnabled(false);
        panels.addpanelitem("tools","pauze",PauseButton,pauze);
        panels.addpanelitem("tools","Stop",StopButton,stop);
        panels.addpanelitem("tools","Start",StartButton,start);
        panels.addpanelitem("tools","Report",ReportButton,report);
        jProgressBar1.setForeground(new Color(122, 117, 190));
        jProgressBar1.setBorderPainted(false);
        jProgressBar1.setStringPainted(true);
        jProgressBar1.setBounds(new Rectangle(7, 245, 393, 22));            
        chkDelFiles.setDoubleBuffered(true);
        chkMD5.setDoubleBuffered(true);
        chkSHA.setDoubleBuffered(true);
        panels.addpanelitem("options","subdir",chkSubDir,chkinsubdir);//Search subdirectories //Select if subdirectories should be searched or not
        panels.addpanelitem("options","MD5",chkMD5,chkmd5action);
        panels.addpanelitem("options","SHA1",chkSHA,chkshaaction);
        panels.addpanelitem("options","delfiles",chkDelFiles,chkdeldualfiles);
        tools = panels.getpanel("tools");
        tools.setBounds(new Rectangle(7, 245, 393, 22));
        contentPane.add(tools,BorderLayout.CENTER);
        contentPane.add(jProgressBar1,BorderLayout.NORTH);
        contentPane.add(statusBar,BorderLayout.SOUTH);
        UpDateComponents();
    }
    private final void UpDateComponents(){
    	try{
    		 chkSHA.setSelected(settings.get("SHA").equalsIgnoreCase("true"));
             chkMD5.setSelected(settings.get("MD5").equalsIgnoreCase("true"));
             chkDelFiles.setSelected(settings.get("chkdeldualfiles").equalsIgnoreCase("false"));
             chkSubDir.setSelected(settings.get("chkinsubdir").equalsIgnoreCase("true"));
    	}catch(NullPointerException e){
    		log(Level.SEVERE,"nulpointer get chk properties");
	   		 chkSHA.setSelected(true);
	         chkMD5.setSelected(true);
	         chkDelFiles.setSelected(false);
	         chkSubDir.setSelected(true);
    	}
    }
	private static  void log(Level level, String msg ){
	    String tag ="<>>>>*"+Statics.LIBNAME+"-"+Statics.COPYRIGHTBY+"*<<<<>";
	    Logger.getLogger(Main.class.getName()).log(level, tag + msg);
	}
	private boolean isdir(){
		return this.isdir;
	}
	protected String getsetting(String k){
		return settings.get(k);
	}
    private void actions(){ }
    private final boolean choosedirectory(){
        JFileChooser fc = new JFileChooser();
        fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        try{
        	fc.setCurrentDirectory(new File(settings.get("LastDir")));
        }catch (NullPointerException e) {}
        if (fc.showOpenDialog(this) != JFileChooser.APPROVE_OPTION){
            return false;
        }
        settings.set("LastDir", fc.getSelectedFile().getAbsolutePath());
        return true;
    }
    @Override
    protected void finalize() throws Throwable {
    	settings.SaveSettings();
    	super.finalize();
    }
    private final byte[] append(byte[] arg1, byte[] arg2, int length2){
        byte[] out;
        int i,j;
        if(arg1 == null){
            out = new byte[length2];
            for (i = 0; i < length2; i++){
                out[i] = arg2[i];
            }
            return out;
        }else if (arg2 == null){
            return arg1;
        }else{
            out = new byte[arg1.length + length2];
            for (i = 0, j = 0; i < arg1.length; i++, j++){
                out[j] = arg1[i];
            }
            for (i = 0; i < length2; i++, j++){
                out[j] = arg2[i];
            }
            return out;
        }
    }
    void setGui(boolean enabled){
        PauseButton.setEnabled(!enabled);
        StopButton.setEnabled(!enabled);
        StartButton.setEnabled((isdir()&& enabled));
        if (enabled){
        	chkDelFiles.setEnabled(enabled);
        	chkMD5.setEnabled(enabled);
            chkSHA.setEnabled(enabled);
            chkSubDir.setEnabled(enabled);
           
        }
    }
    private void setup(){
    	settings.set("LastDir", "");
		settings.set("SHA","true");
        settings.set("MD5","true");
        settings.set("chkdeldualfiles","false");
        settings.set("chkinsubdir","true");
    }
	public void setbtnreport(boolean b) {
		ReportButton.setEnabled(b);
	}
}
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan