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

📄 formstart.java

📁 weka机器学习系统(本站可下载)的拓展
💻 JAVA
字号:
package com.prcomps.cahitarf.gui;

import javax.swing.JRadioButton;
import javax.swing.JPanel;
import javax.swing.ButtonGroup;
import javax.swing.JFileChooser;
import javax.swing.JList;
import javax.swing.ListSelectionModel;
import javax.swing.JScrollPane;
import java.util.ResourceBundle;
import java.util.Iterator;
import java.io.File;
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import com.prcomps.cahitarf.Db2Arff;

import com.sohlman.easylayout.EasyLayout;
import com.sohlman.easylayout.Constraint;

/**
 */
public class FormStart
        extends JPanel
        implements IWizardPanel, ActionListener
{
    private ResourceBundle bundle = WizardFrame.getBundle();

    private ButtonGroup selector = new ButtonGroup();

    private JRadioButton btnNew   = new JRadioButton();
    private JRadioButton btnOld   = new JRadioButton();
    private JList        lstFiles = new JList();

    public FormStart()
    {
        setName( WizardFrame.FORM_START );
        createForm();
    }

    private void createForm()
    {
        btnNew.setText( bundle.getString("wizard.start.btnNew.text") );
        btnOld.setText( bundle.getString("wizard.start.btnOld.text") );
        btnNew.setSelected( true );

        selector.add( btnNew );
        selector.add( btnOld );

        btnOld.addActionListener( this );
        btnNew.addActionListener( this );
        setLayout( new EasyLayout( new int[] { 40, 60 }, new int[] { 50, 0, 50 }, 5, 5 ) );
        //add( new JPanel(), new Constraint( 0, 0 ) );
        add( btnNew, new Constraint( 1, 0, Constraint.LEFT, Constraint.BOTTOM, 5, 0 ) );
        //add( new JPanel(), new Constraint( 0, 1 ) );
        add( btnOld, new Constraint( 1, 1, Constraint.LEFT, Constraint.TOP, 5, 0 ) );
        lstFiles.setFixedCellWidth( 300 );
        lstFiles.setAutoscrolls( true );
        lstFiles.setVisibleRowCount( 7 );
        lstFiles.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
        lstFiles.setEnabled( false );
        lstFiles.setListData( toFileList() );
        JScrollPane scrList = new JScrollPane( lstFiles );
        add( scrList, new Constraint( 1, 2, Constraint.LEFT, Constraint.TOP, 0, 5 ) );
    }

    private String[] toFileList()
    {
        String[] alist = new String[ WizardFrame.prefsFiles.size() + 1 ];
        alist[0] = bundle.getString( "wizard.start.otherfiles" );
        int n=1;
        for ( Iterator i = WizardFrame.prefsFiles.iterator(); i.hasNext(); n++ )
            alist[n] = (String) i.next();
        return alist;
    }

    public void actionPerformed( ActionEvent e )
    {
        lstFiles.setEnabled( btnOld.isSelected() );
    }

    public String getNext()
            throws NotReadyException
    {
        if ( selector.isSelected( btnNew.getModel() ) )
            createDefProperties();
        else
            loadProperties();
        return WizardFrame.FORM_DB;
    }

    public String getPrev()
            throws NotReadyException
    {
        throw new NotReadyException( bundle.getString("wizard.formStart.noprev") );
    }

    public void checkStatus()
    {
    }

    private void loadProperties()
        throws NotReadyException
    {
        if ( lstFiles.getSelectedIndex() > 0 )
        {
            loadProperties( new File( (String) lstFiles.getSelectedValue() ));
            return;
        }
        JFileChooser fc = new JFileChooser( System.getProperty( "user.dir" ) );
        int result = fc.showOpenDialog( this );
        if ( result == JFileChooser.APPROVE_OPTION )
        {
            loadProperties( fc.getSelectedFile() );
        }
        else
            throw new NotReadyException( "" );
    }

    private void loadProperties( File pcaFile )
        throws NotReadyException
    {
        if ( ! pcaFile.exists() )
            throw new NotReadyException( "" );
        if ( ! pcaFile.isFile() )
            throw new NotReadyException( "" );
        try
        {
            InputStream in = new FileInputStream( pcaFile );
            WizardFrame.properties.load( in );
            checkProperties();
            addPrefsFiles( pcaFile.getPath().replace( '\\', '/' ) );
        }
        catch ( FileNotFoundException e )
        {
            throw new NotReadyException( "" );
        }
        catch ( IOException e )
        {
            throw new NotReadyException( "" );
        }
    }

    private void checkProperties()
    {
        if ( ! WizardFrame.properties.containsKey( Db2Arff.PROP_RELATION ) )
            WizardFrame.properties.setProperty( Db2Arff.PROP_RELATION, bundle.getString( "relation.defaultname" ) );
        if ( ! WizardFrame.properties.containsKey( Db2Arff.PROP_JDBC_DRIVER ) )
            WizardFrame.properties.setProperty( Db2Arff.PROP_JDBC_DRIVER, "" );
        if ( ! WizardFrame.properties.containsKey( Db2Arff.PROP_JDBC_URL ) )
            WizardFrame.properties.setProperty( Db2Arff.PROP_JDBC_URL, "jdbc:" );
        if ( ! WizardFrame.properties.containsKey( Db2Arff.PROP_JDBC_USER ) )
            WizardFrame.properties.setProperty( Db2Arff.PROP_JDBC_USER, "" );
        if ( ! WizardFrame.properties.containsKey( Db2Arff.PROP_JDBC_PASSWORD ) )
            WizardFrame.properties.setProperty( Db2Arff.PROP_JDBC_PASSWORD, "" );
        if ( ! WizardFrame.properties.containsKey( Db2Arff.PROP_JDBC_SELECT ) )
            WizardFrame.properties.setProperty( Db2Arff.PROP_JDBC_SELECT, "select * from table" );

    }

    private void createDefProperties()
    {
        WizardFrame.properties.clear();
        WizardFrame.properties.setProperty( Db2Arff.PROP_RELATION, bundle.getString( "relation.defaultname" ) );
        WizardFrame.properties.setProperty( Db2Arff.PROP_JDBC_DRIVER, "" );
        WizardFrame.properties.setProperty( Db2Arff.PROP_JDBC_URL, "jdbc:" );
        WizardFrame.properties.setProperty( Db2Arff.PROP_JDBC_USER, "" );
        WizardFrame.properties.setProperty( Db2Arff.PROP_JDBC_PASSWORD, "" );
        WizardFrame.properties.setProperty( Db2Arff.PROP_JDBC_SELECT, "select * from table" );
    }

    public static void addPrefsFiles( String file )
    {
        if ( WizardFrame.prefsFiles.contains( file ) )
            return;
        WizardFrame.prefsFiles.add( file );
        if ( WizardFrame.prefsFiles.size() > 10 )
            WizardFrame.prefsFiles.remove( 0 );
    }
}

⌨️ 快捷键说明

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