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

📄 tablefeld.java

📁 JAVA-explorer
💻 JAVA
字号:
import java.awt.* ;import java.awt.event.* ;import java.io.* ;import java.text.* ;import java.util.* ;import javax.swing.* ;import javax.swing.event.* ;import javax.swing.table.* ;public class TableFeld  extends JPanel {  HJTable table ;  // AbstractTableModel dataModel;  HTableModel dataModel ;  Explorer ex ;  public TableFeld( Explorer ex ) {    this.ex = ex ;    dataModel = new HTableModel() ;    setLayout( new BorderLayout() ) ;    table = new HJTable( dataModel ) ;    // table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);    table.setAutoResizeMode( JTable.AUTO_RESIZE_ALL_COLUMNS ) ;    JScrollPane scrollpane = new JScrollPane( table ) ;    add( scrollpane , BorderLayout.CENTER ) ;    // table.addKeyListener(this);    //setSize(400,400);    table.setShowGrid( false ) ;    setVisible( true ) ;  }  public void setDir( String neuDir ) {    table.setDir( neuDir ) ;  }  public String getDir() {    return dataModel.fullPath() ;  }// ******************************************  class HJTable    extends JTable {    HTableModel dataModel ; // AbstractTableModel dataModel;    String opFileName ; // Variable f\uFFFDr Dateiname f\uFFFDr飐 Popup-Menue    String opFileShortName ; // Variable f\uFFFDr kurzen Dateiname f\uFFFDr飐 Popup-Menue    String opDirectory ; // Variable f\uFFFDr Directory f\uFFFDr飐 Popup-Menue    boolean opIsHide ; // Popup-Menue    public HJTable( HTableModel dm ) {      super( dm ) ;      this.dataModel = dm ;      setColumnWidth() ; // Spaltenbreiten einstellen      setColumnAlignment() ; // Textausrichtung einstellen      setSelectionMode( ListSelectionModel.SINGLE_INTERVAL_SELECTION ) ;    }    public void processKeyEvent( KeyEvent e ) {      if ( e.getKeyCode() == KeyEvent.VK_HOME & e.getID() == KeyEvent.KEY_PRESSED ) {        setSelectionMode( ListSelectionModel.MULTIPLE_INTERVAL_SELECTION ) ;        setColumnSelectionInterval( 0 , 0 ) ;        e.setKeyCode( KeyEvent.VK_LEFT ) ;      }      else if ( e.getKeyCode() == KeyEvent.VK_END ) {        setSelectionMode( ListSelectionModel.MULTIPLE_INTERVAL_SELECTION ) ;        setColumnSelectionInterval( getColumnCount() - 1 , getColumnCount() - 1 ) ;        e.setKeyCode( KeyEvent.VK_RIGHT ) ;      }      else if ( e.getKeyCode() == KeyEvent.VK_PAGE_DOWN & e.getID() == KeyEvent.KEY_PRESSED ) {        setSelectionMode( ListSelectionModel.MULTIPLE_INTERVAL_SELECTION ) ;        HInteger goTo = new HInteger( getSelectedRow() ) ;        goTo.maxAdd( 15 , getRowCount() - 1 ) ;        setRowSelectionInterval( goTo.getInt() , goTo.getInt() ) ;      }      else if ( e.getKeyCode() == KeyEvent.VK_PAGE_UP & e.getID() == KeyEvent.KEY_PRESSED ) {        setSelectionMode( ListSelectionModel.MULTIPLE_INTERVAL_SELECTION ) ;        HInteger goTo = new HInteger( getSelectedRow() ) ;        goTo.minSub( 15 , 0 ) ;        setRowSelectionInterval( goTo.getInt() , goTo.getInt() ) ;      }      else if ( e.getKeyCode() == KeyEvent.VK_ENTER ) {        if ( e.getID() == KeyEvent.KEY_PRESSED ) {          int selRow = getSelectedRow() ;          if ( selRow > -1 ) { // -1 heisst nicht selectiert            if ( dataModel.isDir( selRow ) ) { // selectiertes File=Directory              // String fName=dataModel.fullPath()+"\\"+dataModel.getName(selRow);              // String fName="\\"+dataModel.getName(selRow);              // if(!dataModel.fullPath().equals("\\")) fName=dataModel.fullPath()+fName;              // ex.setTreeSubDir(fName);              ex.setTreeSubDir( dataModel.getName( selRow ) ) ;            }            else if ( canExec( dataModel.fullPath() + "\\" + dataModel.getName( selRow ) ) ) {              // System.out.println("Run "+dataModel.getName(selRow));              try {                Runtime runtime = Runtime.getRuntime() ;                Process process = runtime.exec( dataModel.fullPath() + "\\" + dataModel.getName( selRow ) ) ;              }              catch ( java.io.IOException ioe ) {                System.err.println( ioe.getMessage() );                ioe.printStackTrace();                System.out.println( dataModel.getName( selRow ) + " kann nicht gestartet werden" ) ;              }               ;            }          }          return ; // VK_ENTER komplett abfangen        }      }      super.processKeyEvent( e ) ;    }    public void processMouseEvent( MouseEvent me ) {      int selRow = rowAtPoint( me.getPoint() ) ;      if ( me.isPopupTrigger() ) { // Popup-Men\uFFFD        // int selRow=rowAtPoint(me.getPoint());        if ( selRow > -1 ) { // -1 heisst nicht selectiert          this.popupMenu( me , dataModel.fullName( selRow ) , dataModel.getName( selRow ) , dataModel.fullPath() + "\\" , dataModel.isHidden( selRow ) ) ;          return ;        }      }      if ( me.getID() == MouseEvent.MOUSE_CLICKED ) {        if ( ( me.getClickCount() > 1 ) && ( ( me.getModifiers() & InputEvent.BUTTON1_MASK ) > 0 ) ) { // Doppelclick linke Maustaste          // int selRow=rowAtPoint(me.getPoint());          if ( selRow > -1 ) { // -1 heisst nicht selectiert            if ( dataModel.isDir( selRow ) ) { // selectiertes File=Directory              ex.setTreeSubDir( dataModel.getName( selRow ) ) ; // Wechsel der Baumdarstellung in das doppelgeclickte Directory, beim Wechsel der TreeSelection wechselt die Tabellendarstellung            }            else if ( canExec( dataModel.fullPath() + "\\" + dataModel.getName( selRow ) ) ) {              // System.out.println("Run "+dataModel.getName(selRow));              try {                Runtime runtime = Runtime.getRuntime() ;                Process process = runtime.exec( dataModel.fullPath() + "\\" + dataModel.getName( selRow ) ) ; // Programm starten              }              catch ( java.io.IOException ioe ) {                System.err.println( ioe.getMessage() );                ioe.printStackTrace();                System.out.println( dataModel.getName( selRow ) + " kann nicht gestartet werden" ) ;              }               ;              return ;            }          }        }      }      super.processMouseEvent( me ) ;    }    public void setDir( String neuDir ) {      dataModel.setDir( neuDir ) ;      setColumnWidth() ; // Spaltenbreiten einstellen      setColumnAlignment() ; // Textausrichtung einstellen      // setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);      setSelectionMode( ListSelectionModel.SINGLE_INTERVAL_SELECTION ) ;      setRowSelectionInterval( 0 , 0 ) ;      scrollRectToVisible( getCellRect( getSelectedRow() , 0 , true ) ) ;    }    // Spaltenbreiten einstellen    void setColumnWidth() {      for ( int i = 0 ; i < getColumnCount() ; i++ ) {        TableColumn tc = getColumn( dataModel.getColumnName( i ) ) ;        int iWidth = dataModel.getColumnWidth( i ) ;        if ( iWidth > 0 ) {          tc.setMaxWidth( iWidth ) ;          tc.setMinWidth( iWidth ) ;        }      }    }    // Alignment (Textausrichtung) einstellen    // -1 links, 0 center, 1 rechts    void setColumnAlignment() {      for ( int i = 0 ; i < getColumnCount() ; i++ ) {        int iAlignment = dataModel.getColumnAlignment( i ) ;        TableColumn tc = getColumn( dataModel.getColumnName( i ) ) ;        // DefaultTableCellRenderer ren=(DefaultTableCellRenderer)tc.getCellRenderer();        // TableCellRenderer ren=tc.getCellRenderer();        DefaultTableCellRenderer ren = new DefaultTableCellRenderer() ;        tc.setCellRenderer( ren ) ;        if ( iAlignment > 0 ) {          ren.setHorizontalAlignment( JLabel.RIGHT ) ;        }        else if ( iAlignment < 0 ) {          ren.setHorizontalAlignment( JLabel.LEFT ) ;        }        else {          ren.setHorizontalAlignment( JLabel.CENTER ) ;        }      }    }    boolean canExec( String fName ) {      if ( fName.length() < 4 ) {        return false ;      }      if ( ( ( fName.substring( fName.length() - 4 ) ).toUpperCase() ).equals( ".EXE" ) ) {        return true ;      }      if ( ( ( fName.substring( fName.length() - 4 ) ).toUpperCase() ).equals( ".COM" ) ) {        return true ;      }      if ( ( ( fName.substring( fName.length() - 4 ) ).toUpperCase() ).equals( ".BAT" ) ) {        return true ;      }      return false ;    }    // Popup-Menue    public void popupMenu( MouseEvent me , String dName , String sName , String sDir , boolean isHide ) {      opFileName = dName ; // Variable f\uFFFDr Dateiname f\uFFFDr飐 Popup-Menue      opFileShortName = sName ; // Variable f\uFFFDr kurzen Dateiname f\uFFFDr飐 Popup-Menue      opDirectory = sDir ; // Variable f\uFFFDr Directory f\uFFFDr飐 Popup-Menue      opIsHide = isHide ;      JPopupMenu popup = new JPopupMenu() ;      JMenuItem oeffnen = new JMenuItem( "謋fnen" ) ;      oeffnen.addActionListener( new ActionAdapter() {        public void actionPerformed( ActionEvent ae ) {          oeffnenFile() ;        }      } ) ;      popup.add( oeffnen ) ;      JMenuItem kopieren = new JMenuItem( "Kopieren" ) ;      kopieren.addActionListener( new ActionAdapter() {        public void actionPerformed( ActionEvent ae ) {          kopierenFile() ;        }      } ) ;      popup.add( kopieren ) ;      JMenuItem loeschen = new JMenuItem( "L鰏chen" ) ;      loeschen.addActionListener( new ActionAdapter() {        public void actionPerformed( ActionEvent ae ) {          loeschenFile() ;        }      } ) ;      popup.add( loeschen ) ;      popup.show( me.getComponent() , me.getX() , me.getY() ) ;    }    public void oeffnenFile() {      JOptionPane.showMessageDialog( null , "\u00F6ffnen nicht fertig !" , "\u00F6ffnen" , JOptionPane.INFORMATION_MESSAGE ) ;    }    public void kopierenFile() {      if ( opIsHide ) {        JOptionPane.showMessageDialog( null , "Datei " + opFileName + " isHidden (kopieren nicht m\u00F6glich) !" , "Kopieren" , JOptionPane.ERROR_MESSAGE ) ;        return ;      }      /*             Frame f=new Frame();             JFileChooser fc=new JFileChooser(); // opDirectory);             fc.setDialogTitle("Kopieren "+opFileName);             fc.setName(opFileShortName);             int retWert=fc.showDialog(this,"Kopieren nach");             String destName=fc.getName();             System.out.println(destName);             if(retWert!=JFileChooser.CANCEL_OPTION){       */      Frame f = new Frame() ;      FileDialog fd = new FileDialog( f ) ;      fd.setTitle( "Kopieren " + opFileName ) ;      fd.setFile( opFileShortName ) ;      fd.setDirectory( opDirectory ) ;      // System.out.println(opFileShortName);      fd.setMode( FileDialog.SAVE ) ;      fd.show() ;      // System.out.println(fd.getDirectory()+fd.getFile());      if ( ! ( fd.getFile().equals( "null" ) ) ) {        try {          Runtime runtime = Runtime.getRuntime() ;          // System.out.println((fc.getCurrentDirectory().getAbsolutePath())+fc.getName());          // Process process=runtime.exec(System.getProperty("user.dir")+"\\FileCopy.bat "+opFileName+" "+(fc.getCurrentDirectory().getAbsolutePath())+fc.getName());          String cpStr = System.getProperty( "user.dir" ) + "\\FileCopy.bat " + opFileName + " " + fd.getDirectory() + fd.getFile() ;          System.out.println( cpStr ) ;          Process process = runtime.exec( cpStr ) ;          try {            process.waitFor() ; // Warten bis Kopieren erledigt          }          catch ( InterruptedException e ) {            System.err.println( e.getMessage() );            e.printStackTrace();          }          ex.updateTableDir() ; // Aktualisieren Bild        }        catch ( java.io.IOException ioe ) {          System.err.println( ioe.getMessage() );          ioe.printStackTrace();        }         ;      }    }    public void loeschenFile() {      if ( JOptionPane.showConfirmDialog( null , "Datei " + opFileName + " l\u00F6schen?\n(Achtung, hier wirkt kein Papierkorb)" , "L\u00F6schen" ,                                          JOptionPane.YES_NO_OPTION ) == 0 ) {        // System.out.println(opFileName+" loeschen");        try {          File f = new File( opFileName ) ;          f.delete() ;          Waiting w = new Waiting( 500 ) ; // Warten bis Loeschen erledigt          ex.updateTableDir() ; // Aktualisieren Bild        }        catch ( Exception e ) {          System.err.println( e.getMessage() );          e.printStackTrace();          JOptionPane.showMessageDialog( null , "Datei " + opFileName + " l\u00F6schen nicht m\u00F6glich !" , "L\u00F6schen" , JOptionPane.ERROR_MESSAGE ) ;        }      }    }  }}

⌨️ 快捷键说明

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