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

📄 messagepanel.java

📁 一个用java写的mail.里面的代码值得我们去研究!学习。
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
      MainFrame.getInstance().resetCursor();      if ( newSelRow != -1 ) {        messageTable_.setRowSelectionInterval( newSelRow, newSelRow );        showTableRow( newSelRow );      }    }  }  private int[]  getSelectedRows() {    int[] rows = messageTable_.getSelectedRows();    return rows;  }  private Message[]  getSelectedMessages() {    int[] rows = getSelectedRows();    if ( rows.length < 1 )      return new Message[0];    Message[] msgs = new Message[ rows.length ];    for ( int idx = 0 ; idx < rows.length ; ++idx ) {      msgs[ idx ] = model_.getMessage( rows[ idx ] );    }    return msgs;  }// used by FolderTreePanel.java  public void  copySelectedMessages( Folder destFolder, boolean deleteMsgs ) {    boolean closeDest = false;    if ( folder_ == null || destFolder == null )      return;        synchronized( model_ ) {      MainFrame.getInstance().setWaitCursor();      Message[] msgs = getSelectedMessages();      if ( msgs.length < 1 )        return;      Object[] xargs = new Object[1];      xargs[0] = destFolder.getName();      if ( deleteMsgs ) {        statusBar_.showStatusMessage(            ICEMail.getBundle().getFormatString( "MessagePanel.Moving", xargs ) );      } else {        statusBar_.showStatusMessage(           ICEMail.getBundle().getFormatString ( "MessagePanel.Copying", xargs ) );      }      try {        MailUtilities.setFolderOpenAndReady( folder_, Folder.READ_WRITE );        folder_.copyMessages( msgs, destFolder );      } catch ( MessagingException ex ) {        xargs[0] = ex.getMessage();        ComponentFactory.showDialog( ICEMail.getBundle(), "MessagePanel.CopyingError",                                     0, JOptionPane.ERROR_MESSAGE, xargs );        deleteMsgs = false;      }      MainFrame.getInstance().resetCursor();      try {        if ( deleteMsgs ) {          folder_.setFlags( msgs, new Flags(Flags.Flag.DELETED), true );          int[] rows = getSelectedRows();                    model_.flushCache( rows );          model_.fireRowsUpdated( rows );          if ( rows.length == 1 ) {            int newSelRow = rows[0] + 1;            int numRows = messageTable_.getRowCount();            if ( newSelRow >= numRows )              newSelRow = numRows - 1;            messageTable_.setRowSelectionInterval( newSelRow, newSelRow );                        showTableRow( newSelRow );          }        }      } catch ( MessagingException ex ) {        xargs[0] = ex.getMessage();        ComponentFactory.showDialog( ICEMail.getBundle(), "MessagePanel.MarkingError",                                     0, JOptionPane.ERROR_MESSAGE, xargs );      }      xargs[0] = destFolder.getName();      if ( deleteMsgs ) {        statusBar_.showStatusMessage(           ICEMail.getBundle().getFormatString ( "MessagePanel.Moved", xargs ) );      } else {        statusBar_.showStatusMessage(           ICEMail.getBundle().getFormatString ( "MessagePanel.Copied", xargs ) );      }    }  }  private void  printSelectedMessages() {    if ( folder_ == null )      return;        MainFrame.getInstance().setWaitCursor();    Message[] msgs = getSelectedMessages();    if ( msgs.length < 1 ) {      return;    }    PrintMessageThread pThread =      new PrintMessageThread( (Frame)getTopLevelAncestor(), msgs );    pThread.start();    MainFrame.getInstance().resetCursor();  }  private void  dumpSelectedMessages() {    if ( folder_ == null )      return;        MainFrame.getInstance().setWaitCursor();    Message[] msgs = getSelectedMessages();    if ( msgs.length < 1 )      return;    MainFrame.getInstance().resetCursor();    int skipCount = 0;    for ( int i = 0 ; i < msgs.length ; ++i ) {      String title = ICEMail.getBundle().getString( "MessagePanel.Exporting.title" );      FileDialog dlg =        new FileDialog( (Frame)getTopLevelAncestor(), title, FileDialog.SAVE );      dlg.show();      String filename = dlg.getFile();      String dirname = dlg.getDirectory();      if ( filename == null || dirname == null ) {        break;      }      try {        Message msg = msgs[i];        if ( msg instanceof MimeMessage ) {          MimeMessage mimeMsg = (MimeMessage) msg;          FileOutputStream out =            new FileOutputStream( dirname +                 ( dirname.endsWith(File.separator) ? "" : File.separator ) + filename );          mimeMsg.writeTo( out );          out.close();        } else {          ++skipCount;        }      } catch ( Exception ex ) {        Object[] xargs = new Object[1];        xargs[0] = ex.getMessage();        ComponentFactory.showDialog( ICEMail.getBundle(), "MessagePanel.ExportError",                                     0, JOptionPane.ERROR_MESSAGE, xargs );      }    }    if ( skipCount > 0 ) {      Object[] xargs = new Object[1];      xargs[0] = String.valueOf( skipCount );      ComponentFactory.showDialog( ICEMail.getBundle(), "MessagePanel.SkippedMsg",                                   0, JOptionPane.INFORMATION_MESSAGE, xargs );    }  }  private void  showMessageProperties() {    if ( folder_ == null )      return;        MainFrame.getInstance().setWaitCursor();    Message[] msgs = getSelectedMessages();    if ( msgs.length < 1 )      return;    MainFrame.getInstance().resetCursor();    try {      JDialog dlg = new PropertiesDialog( null, msgs[0], true );      dlg.show();    } catch ( Exception ex ) {      Object[] xargs = new Object[1];      xargs[0] = ex.getMessage();      ComponentFactory.showDialog( ICEMail.getBundle(), "MessagePanel.PropError",                                   0, JOptionPane.ERROR_MESSAGE, xargs );    }  }  private void  establishContents() {  // create our folder model    model_ = new FolderTableModel( colFields_ );  //  TableSorter sorter = new TableSorter( model_ );   // setup our container and components    setLayout( new BorderLayout() );    messageTable_ = new JTable( model_ );    JTableHeader tblHdr = messageTable_.getTableHeader();     tblHdr.addMouseListener( new IMouseAdapter() );     configureMessageTable( messageTable_ );  // find out what is pressed    messageTable_.getSelectionModel().addListSelectionListener( new IListSelectionListener() );    messageTable_.setDefaultRenderer( Date.class, new ITableCellRenderer() );    messageTable_.setDefaultRenderer( String.class, new ITableCellRenderer() );    messageTable_.setDefaultRenderer( JLabel.class, new ITableCellRenderer() );    this.tblScroller = new JScrollPane( messageTable_ );        this.tblScroller.setVerticalScrollBarPolicy(        ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED );    this.tblScroller.setHorizontalScrollBarPolicy(        ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED );    this.tblScroller.setMinimumSize( new Dimension(50, 50) );    this.tblScroller.setPreferredSize( new Dimension(600, 125) );    this.splitPane = new JSplitPane( JSplitPane.VERTICAL_SPLIT,                                     this.tblScroller, viewer_ );        this.splitPane.setContinuousLayout( true );    this.splitPane.setDividerSize( 3 );    add( this.splitPane, BorderLayout.CENTER );  }  private void  configureMessageTable( JTable table ) {    String resizePolicy = UserProperties.getProperty( "msgTbl.resizePolicy", "OFF" );    if ( resizePolicy.equalsIgnoreCase( "OFF" ) ) {      table.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );    } else if ( resizePolicy.equalsIgnoreCase( "ALL" ) ) {      table.setAutoResizeMode( JTable.AUTO_RESIZE_ALL_COLUMNS );    } else if ( resizePolicy.equalsIgnoreCase( "LAST" ) ) {      table.setAutoResizeMode( JTable.AUTO_RESIZE_LAST_COLUMN );    }    boolean showGrid = UserProperties.getProperty( "msgTbl.showGrid", false );    table.setShowGrid( showGrid );    boolean showHGrid = UserProperties.getProperty( "msgTbl.showHorizGrid", false );    table.setShowHorizontalLines( showHGrid );    boolean showVGrid = UserProperties.getProperty( "msgTbl.showVertGrid", false );    table.setShowVerticalLines( showVGrid );    table.setColumnSelectionAllowed( false );    table.setRowSelectionAllowed( true );    Enumeration xenum = table.getColumnModel().getColumns();    int xindex = 0;    while ( xenum.hasMoreElements() ) {      TableColumn tblColumn = (TableColumn)xenum.nextElement();      tblColumn.setMinWidth(5);      tblColumn.setMaxWidth(2048);      tblColumn.setPreferredWidth( colWidths_[xindex] );      tblColumn.setIdentifier( colFields_[xindex] );      xindex++;    }  }  private void  loadTableColumns() {    Vector fields = new Vector();    for ( int i = 1 ; ; ++i ) {      String field = UserProperties.getProperty( "msgTbl.column." + i, null );      if ( field == null )        break;      fields.addElement( field );    }    colFields_ = new String[ fields.size() ];    colWidths_ = new int[ fields.size() ];    for ( int i = 0, c = 1 ; i < fields.size() ; ++i, ++c ) {      colFields_[i] = (String) fields.elementAt(i);      colWidths_[i] = UserProperties.getProperty( "msgTbl.column." + c + ".width", 50 );    }  }  private void  saveTableColumns() {    Configuration config = Configuration.getInstance();    Enumeration xenum = messageTable_.getColumnModel().getColumns();    int xindex = 1;    while ( xenum.hasMoreElements() ) {      TableColumn xcolumn = (TableColumn)xenum.nextElement();    // save column fields      config.setProperty( "msgTbl.column." + xindex, xcolumn.getIdentifier().toString() );    // save column widths      config.setProperty( "msgTbl.column." + xindex + ".width", xcolumn.getWidth() );      xindex++;    }  }  /**   * Get new mail for the selected folder.   */  private void  getNewMail() {    if ( folder_ != null ) {      MainFrame.getInstance().setWaitCursor();      MailEventThread.getInstance().notifyIncomingMail( folder_, false );      Object[] xargs = new Object[1];      xargs[0] = folder_.getName();      String msg = ICEMail.getBundle().getFormatString( "MessagePanel.Retrieving", xargs );      DialogRunner runner = new DialogRunner( new INewMailRunner(),                                             (Frame)getTopLevelAncestor(),                            ICEMail.getBundle().getString( "MessagePanel.Retrieving.title" ),                                              msg );      runner.start();      MainFrame.getInstance().resetCursor();    }  }  private void  composeMessage( String command ) {    MainFrame.getInstance().setWaitCursor();    ListSelectionModel lm = messageTable_.getSelectionModel();    int idx = lm.getMaxSelectionIndex();    if ( command.startsWith( "COMPOSE" ) ||         ( idx != -1 &&           idx < messageTable_.getRowCount() &&           messageTable_.isRowSelected( idx ) ) ) {      int xstate = ComposeFrame.CREATING;      if ( command.startsWith( "REPLY" ) ) {        if ( command.endsWith( "ALL" ) ) {          xstate = ComposeFrame.REPLYINGTOALL;        } else {          xstate = ComposeFrame.REPLYING;        }      } else if ( command.startsWith( "FORWARD" ) ) {        xstate = ComposeFrame.FORWARDING;      } else if ( command.startsWith( "EDIT" ) ) {

⌨️ 快捷键说明

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