Professional Documents
Culture Documents
Using Netbeans Ide To Build Quick Ui'S
Using Netbeans Ide To Build Quick Ui'S
We will be building the following application using the NetBeans IDE. It’s a simple nucleotide search tool
where we have as input a sequence to search, a search sequence, the direction of the input sequence (5’
→ 3’ – Forward – or 3’ → 5’ – Reverse), the maximum percent mismatch, the minimum percent GC
content, and whether or not the search sequence indicates transitions. If transitions are allowed, then
the search sequence is case sensitive where a lower-case nucleotide indicates the possibility for a
transition (i.e., a = A or G, c = C or T, g = A or G, and t = C or T); otherwise case doesn’t matter. The input
file may or may not be in FASTA format. The output is the matching nucleotide sequence from the input
file with an offset to the start position in the input sequence, the percent mismatch, and the percent gc
content. We also add three parameter presets to the menu bar.
INSTALLATION STEPS
1. Downloading and installing the latest NetBeans IDE (using 6.9.1 in this demo)
a. Go to: http://netbeans.org/downloads/index.html
b. Select the version you want and save it somewhere
i. This file is an installer on windows so you just delete it after installation (not like
Eclipse)
ii. I typically just download ALL because I use the Java and C/C++ modules
c. Install the file when the download is complete
d. Run when installation is complete
e. At any point in time, if you wish to run the project, you must first execute Clean and
Build then Run
i. 6.8 and earlier execute Build with Run, but for some reason, 6.9.1 doesn’t
4. Next, in the Properties window, click on border and select Titled Border, change the Border
option to EtchedBorder, type “Input” into the Title field and change the color to black
5. Next, we will drag a Swing Label and Combo Box control into the Input pane
a. To change the variable name, right-click on the label and select Change variable name…
enter “direction” as the new name
6. To change the text for jLabel1, simply double-click it and type Species
7. To change the values in the combo box, click on it and in Properties select model Type in
“Forward” <enter> “Reverse
8. Next, we are going to add a series of Label and Spinner objects (Mismatch, GCMin)
a. To modify the Spinner elements, select Properties → model
i. We want to use the Model Type number for both of these
ii. Initial Value for Mismatch is 20, minimum is 0 and max is 100, step size 1
iii. Initial Value for GCMin is 70, minimum is 0 and max is 100, step size 1
b. Set the variable names to mismatch and gcminrespectively
9. We need to specify whether or not transitions are allowed (i.e., A ↔ G and C ↔ T)
a. Drag a Check Box control next to max and name it Transitions
b. Change the variable name to transitions
c. If it is checked then that means allowed else disallowed
b. Next, we will add a Label to the right of the select file where we will eventually display
the path to the selected file; set text to “empty”
i. To change the variable name to fileName
c. Instead of using the File Chooser palette option, we will create an action for the button
to call the File Chooser from
i. Select Source view
ii. Under the method showAboutBox(), add the following (you may have to add the
import to File)
@Action
public void fileChooser(){
JFileChooser chooser = new JFileChooser("");
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int returnVal = chooser.showOpenDialog((java.awt.Component) null);
if (returnVal == JFileChooser.APPROVE_OPTION ){
inFile = chooser.getSelectedFile();
fileName.setText(inFile.getPath());
}
}
iii. Return to the Design menu
iv. Double-click the Select File button → Action = fileChooser
1. This assigns the method fileChooser to the button when it is pressed
12. We will round out the input part with a submission button
a. Add a Button names Execute
@Action
public void execute(){
statusAnimationLabel.setIcon(busyIcons[0]);
busyIconIndex = 0;
busyIconTimer.start();
progressBar.setVisible(true);
progressBar.setIndeterminate(true);
jButton1.setEnabled(false);
task = new Task();
task.addPropertyChangeListener(propertyChangeListener);
task.execute(); // just like run, different from this execute
}
/*
* Executed in event dispatch thread
*/
public void done() {
// Beep
Toolkit.getDefaultToolkit().beep();
/**
* Invoked when task's progress property changes.
*/
public void propertyChange(PropertyChangeEvent evt) {
if ("progress" == evt.getPropertyName()) {
int progress = (Integer) evt.getNewValue();
progressBar.setIndeterminate(false);
progressBar.setVisible(false);
progressBar.setValue(progress);
}
}
PropertyChangeListener propertyChangeListener = new
PropertyChangeListener() {
4. Let’s add a label for the total number in the result set
a. Drag a Label between the top of the Table and the Panel
b. Set the text to “---“
c. Change the variable name to resultsize
5. Now we need to write the methods to process the input
a. Create a new package called “compute” with a new method named “Compute”
b. Replace this class with the code provided at the end of this tutorial
c. Go back to GisoDemo and enter the source view
i. Add the following code the end of the runExecute method
results.setAutoCreateRowSorter(true);
model = new DefaultTableModel();
Compute c = new Compute(inFile, dir, trans, mm, gcm, srch, model);
results.setModel(model);
this.resultsize.setText(model.getRowCount() + " Results");
7. The last thing we’ll cover is the creation of menu items with preset values
a. In design view, go to the Inspector window (lower-left) and right-click on menuBar →
Add menu
b. Change the variable name to presetMenu and set the text to Presets
c. Drag it to the second position
d. Right-click on presetMenu in the Inspector and add three menu items (Add From Palette
→ Menu Item)
i. Change the variable name to noTrans and set the text to No Trans
ii. Change the variable name to trans and set the text to Trans
iii. Change the variable name to reverse and set the text to Reverse
e. We need to add the actions to the source (we still have to add the file from the GUI)
@Action
public void noTrans(){
this.direction.setSelectedIndex(0);
this.mismatch.setValue(25);
this.gcmin.setValue(25);
this.transitions.setSelected(false);
this.search.setText("ATGAAG");
}
@Action
public void trans(){
this.direction.setSelectedIndex(0);
this.mismatch.setValue(25);
this.gcmin.setValue(25);
this.transitions.setSelected(true);
this.search.setText("ATGAaG");
}
@Action
public void reverse(){
this.direction.setSelectedIndex(1);
this.mismatch.setValue(25);
this.gcmin.setValue(25);
this.transitions.setSelected(true);
this.search.setText("ATgAAG");
}
f. Back in the Design view, click on Presets in the menu bar and add the appropriate action
to each of the menu items
8. That’s it! Clean and Build then Run (a sequence file is also provided in this document)
9. Additionally, to change the application title and About box, go to gisodemo.resources and edit
GisoDemoAboutBox.properties and GisoDemoApp.properties
COMPUTE.java
package compute;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Ray
*/
public class Compute {
StringBuilder sequence = null;
boolean transitions = false;
int mismatch = 0;
int gcmin = 0;
String search = null;
String direction = null;
DefaultTableModel model = null;
if (i + 1 == v.length()) {
if(mis <= this.mismatch && gc >= this.gcmin){
match = true;
}
}
}
if(match){
Object[] newRow = {s.toString(), offset, mis, gc};
model.addRow(newRow);
}
}
}
SAMPLE SEQUENCE
>gi|gi-number|from|accession|locus
ATGACCGACCTCTTGAGAAGTGTTGTCACCGTAATTGATGTTTTCTACAA
ATACACCAAGCAAGATGGGGAGTGTGGCACACTGAGCAAGGGTGAACTAA
AGGAACTTCTGGAGAAAGAGCTTCATCCAGTTCTGAAGAACCCAGATGAT
CCAGACACAGTGGATGTCATCATGCATATGCTGGATCGAGATCATGACAG
AAGATTGGACTTTACTGAGTTTCTTTTGATGATATTCAAGCTGACTATGG
CCTGCAACAAGGTCCTCAGCAAAGAATACTGCAAAGCTTCAGGGTCAAAG
AAGCATAGGCGTGGTCACCGACACCAAGAAGAAGAAAGTGAAACAGAAGA
GGATGAAGAGGATACACCAGGACATAAATCAGGTTACAGACATTCAAGTT
GGAGTGAGGGAGAGGAGCATGGATATAGTTCTGGGCACTCAAGGGGAACT
GTGAAATGTAGACATGGGTCCAACTCCAGGAGGCTAGGAAGACAAGGTAA
TTTATCCAGCTCTGGGAACCAAGAGGGATCTCAGAAAAGATACCACAGGT
CCAGCTGTGGTCATTCATGGAGTGGTGGCAAAGACAGACATGGTTCCAGC
TCTGTAGAACTGAGAGAAAGAATAAACAAGTCACACATTAGCCCTTCTAG
GGAATCTGGGGAGGAGTATGAATCTGGATCTGGATCAAACAGTTGGGAAA
GGAAAGGTCATGGTGGTCTGTCATGTGGATTGGAGACTAGTGGGCATGAA
TCAAACTCTACTCAGTCAAGAATTAGAGAACAAAAGCTTGGGTCTAGCTG
TTCAGGTTCAGGAGACAGTGGGAGGCGAAGTCATGCATGTGGTTATAGCA
ATTCAAGTGGGTGTGGAAGGCCACAAAATGCTTCAAGTTCTTGTCAGTCA
CATAGATTTGGAGGGCAAGGAAATCAATTTAGCTATATTCAGTCAGGCTG
TCAGTCAGGAATTAAGGGAGGACAAGGCCATGGCTGTGTCTCAGGAGGTC
AGCCCTCTGGATGTGGTCAACCTGAGTCTAACCCCTGTAGTCAGTCCTAT
AGTCAGAGAGGATATGGAGCTAGAGAAAATGGTCAACCACAGAACTGTGG
AGGACAATGGAGAACAGGCTCAAGTCAGTCCTCTTGCTGTGGACAATATG
GGTCTGGAGGTAGCCAGTCTTGTAGTAATGGTCAACATGAATATGGTTCC
TGTGGCCGCTTTTCAAACTCTTCTAGTTCAAATGAATTTTCCAAATGTGA
TCAATATGGGTCTGGTTCAAGTCAGTCTACTAGCTTTGAACAACATGGAA
CAGGCTTGAGTCAGTCCTCTGGGTTCGAACAACATGTATGTGGCTCAGGT
CAAACTTGTGGCCAGCATGAGTCTACATCAAGTCAATCCTTGGGCTATGA
CCAGCATGGGTCTAGCTCAGGTAAGACATCTGGCTTTGGACAACATGGGT
CTGGCTCAGGTCAGTCCTCTGGCTTTGGACAATGTGGGTCAGGCTCAGGT
CAGTCCTCTGGCTTTGGACAGCATGGGTCTGTCTCAGGACAATCCTCTGG
TTTTGGACAGCATGGGTCTGTCTCAGGACAATCCTCTGGTTTTGGACAAC
ATGAGTCTAGATCACGTCAGTCTAGCTATGGCCAACATGGTTCTGGCTCA
AGTCAATCATCTGGCTATGGCCAATATGGGTCTAGAGAGACATCTGGCTT
TGGACAACATGGGTTGGGCTCAGGTCAATCCACTGGCTTTGGCCAATATG
GATCGGGCTCAGGTCAGTCCTCTGGCTTTGGACAACATGGGTCTGGCTCA
GGACAATCCTCTGGCTTTGGACAACATGAGTCTAGATCAGGTCAGTCTAG
TTATGGCCAACACAGTTCTGGCTCAAGTCAGTCATCTGGCTATGGCCAAC
ATGGGTCTAGACAGACATCTGGCTTTGGACAACATGGGTCAGGCTCAAGT
CAATCCACTGGCTTTGGCCAATATGGATCAGGCTCAGGTCAGTCCTCTGG
CTTTGGACAACATGTTTCTGGCTCAGGACAATCCTCTGGTTTTGGACAAC
ATGAGTCTAGATCAGGTCATTCTAGCTATGGCCAACATGGTTTTGGCTCA
AGTCAATCATCTGGCTATGGTCAACATGGGTCAAGTTCAGGACAGACATC
TGGATTTGGACAACACGAGTTAAGCTCAGGTCAGTCTTCCAGCTTTGGCC
AACATGGATCAGGCTCAGGTCAGTCCTCTGGCTTTGGACAACATGGGTCT
GGCTCAGGACAATCCTCTGGCTTTGGACAACATGAGTCTAGATCAGGTCA
GTCTAGCTATGGCCAACACAGTTCTGGCTCAAGTCAGTCATCTGGCTATG
GCCAACATGGGTCTAGACAGACATCTGGCTTTGGACAACATGGGTCAGGC
TCAAGTCAATCCACTGGCTTTGGCCAATATGGATCAGGCTCAGGTCAGTC
CGCTGGCTTTGGACAACATGGGTCTGGCTCAGGACAATCCTCTGGCTTTG
GACAGCATGAGTCTAGATCACATCAGTCCAGCTATGGCCAACATGGTTCT
GGCTCAAGTCAATCATCTGGCTATGGTCAACATGGGTCAAGTTCGGGACA
GACATCTGGCTTTGGACAACACAGGTCAAGCTCAGGTCAATACTCTGGCT
TTGGACAACATGGATCAGGCTCAGGTCAGTCCAGTGGCTTTGGACAACAT
GGGACTGGCTCAGGACAATACTCTGGTTTTGGACAACATGAGTCTAGATC
ACATCAGTCTAGCTATGGCCAACATGGTTCTGGCTCAAGTCAGTCATCTG
GCTATGGTCAACATGGGTCAAGTTCAGGACAGACTTTTGGATTTGGACAA
CACAGGTCAGGCTCAGGTCAATCCTCTGGCTTTGGCCAACATGGATCAGG
CTCAGGTCAGTCCTCTGGCTTTGGACAACATGAGTCAGGCTCAGGAAAAT
CCTCTGGCTTTGGACAGCATGAGTCTAGATCAAGTCAGTCTAATTATGGC
CAACATGGTTCTGGCTCAAGTCAGTCATCTGGCTATGGTCAACATGGGTC
TAGTTCAGGACAGACAACTGGCTTTGGACAACACAGGTCAAGCTCAGGCC
AATACTCAGGCTTTGGACAACATGGATCAGGCTCAGATCAGTCCTCTGGC
TTTGGACAACATGGGACTGGTTCAGGACAATCCTCTGGTTTTGGACAATA
TGAGTCTAGATCACGTCAGTCTAGCTATGGCCAACATGGTTCTGGCTCAA
GTCAATCATCTGGCTATGGTCAACATGGGTCAAATTCAGGACAGACATCT
GGATTTGGACAACACAGGCCAGGCTCAGGTCAGTCCTCTGGCTTTGGCCA
ATATGGATCGGGCTCAGGTCAGTCTTCTGGCTTTGGACAACATGGGTCAG
GCACAGGTAAATCCTCTGGCTTTGCACAGCATGAGTACAGATCAGGTCAG
TCTAGCTATGGCCAACATGGTACTGGCTCCAGTCAATCATCTGGCTGTGG
CCAACATGAGTCTGGCTCAGGTCCAACCACAAGTTTTGGACAGCATGTGT
CTGGCTCAGACAATTTCTCTAGTTCTGGACAACATATATCTGACTCAGGT
CAGTCCACTGGATTTGGCCAATATGGTTCAGGCTCAGGTCAATCAACTGG
CTTGGGCCAGGGTGAATCTCAACAAGTAGAGTCAGGATCCACAGTTCATG
GGAGACAGGAAACTACTCATGGTCAGACAATAAATACCACTAGACATAGC
CAGTCTGGTCAAGGACAATCCACACAGACAGGGTCCAGGGTAACTAGAAG
ACGAAGATCTAGCCAAAGTGAGAACAGTGACAGTGAAGTGCACTCAAAGG
TCTCACACAGACATTCAGAACACATTCACACACAAGCTGGATCTCACTAC
CCAAAGTCAGGATCCACAGTTCGCAGAAGACAAGGAACTACTCATGGACA
GAGAGGAGATACCACTAGACATGGCCATTCTGGTCATGGACAGTCTACAC
AGACAGGTTCCAGAACATCTGGAAGACAGAGATTTAGCCACAGTGATGCC
ACTGACAGTGAAGTGCACTCAGGGGTCTCACATAGACCACACTCACAAGA
ACAAACTCACAGCCAAGCTGGATCTCAACATGGAGAGTCAGAATCCACAG
TTCATGAGAGACATGAAACTACTTATGGACAGACAGGAGAGGCCACTGGA
CATGGCCACTCTGGTCATGGACAGTCCACACAGAGAGGGTCCAGGACAAC
TGGAAGAAGGGGATCTGGCCATAGTGAGTCCAGTGACAGTGAAGTGCACT
CAGGGGGCTCACACAGACCACAATCACAAGAACAAACTCATGGCCAAGCC
GGATCTCAACATGGAGAGTCAGGATCCACAGTTCATGGGAGACACGGAAC
TACTCATGGACAGACAGGAGATACCACTAGACATGCCCACTATCATCATG
GAAAATCCACACAGAGAGGGTCCAGTACAACTGGAAGAAGGGGATCTGGC
CACAGTGAGTCCAGTGACAGTGAAGTGCACTCAGGGGGCTCGCACACACA
TTCAGGACACACTCACGGCCAAAGTGGATCTCAACATGGAGAGTCAGAAT
CCATAATTCATGACAGACACAGAATTACTCATGGACAGACAGGAGATACC
ACTAGACATTCCTACTCTGGTCATGAACAAACCACACAGACAGGGTCCAG
GACAACTGGAAGACAGAGAACTAGCCACAGTGAGTCCACTGACAGTGAAG
TGCACTCAGGGGGCTCACACAGACCACACTCACGAGAACACACTTACGGC
CAAGCCGGATCTCAACATGAAGAGCCAGAATTCACAGTTCATGAGAGACA
CGGAACTACTCATGGACAGATAGGAGATACCACTGGACATTCCCACTCTG
GTCATGGACAGTCCACACAGAGAGGGTCCAGGACAACTGGAAGACAGAGA
TCTAGCCACAGTGAGTCCAGTGACAGTGAAGTGCACTCAGGGGTCTCACA
CACACATACAGGACACACTCATGGTCAAGCTGGATCTCAACATGGACAGT
CAGAATCCATAGTTCCTGAGAGACATGGAACTACTCATGGACAGACAGGA
GATACCACTAGACATGCCCACTATCATCATGGATTAACCACACAGACAGG
GTCCAGGACTACTGGAAGAAGGGGATCTGGCCACAGTGAGTACAGTGACA
GTGAAGGGTACTCAGGAGTCTCACATACACATTCAGGACACACTCATGGC
CAAGCCAGATCTCAACATGGAGAGTCAGAATCCATAGTTCATGAGAGACA
TGGAACTATACATGGACAGACAGGCGATACCACCAGACATGCCCACTCTG
GTCATGGACAGTCCACACAGACAGGGTCCAGGACCACTGGAAGAAGGTCA
TCTGGCCACAGTGAGTACAGTGACAGTGAAGGGCACTCAGGGTTCTCACA
AAGACCACACTCACGAGGACACACTCACGGCCAGGCTGGATCTCAACATG
GAGAGTCAGAATCCATAGTTGACGAGAGACATGGAACTACTCATGGACAG
ACAGGAGATACCAGTGGACATTCTCAATCTGGTCATGGACAGTCCACACA
GTCAGGATCCAGTACAACTGGAAGAAGGAGATCTGGCCACAGTGAGTCCA
GTGACAGTGAAGTGCACTCAGGGGGCTCACATACACATTCAGGACACACA
CACAGCCAAGCCAGGTCTCAACATGGAGAGTCAGAATCCACAGTTCACAA
GAGACACCAAACTACTCATGGACAGACAGGAGATACCACTGAACATGGCC
ACCCTAGTCATGGACAAACCATACAGACAGGGTCCAGGACAACTGGAAGA
AGGGGATCTGGCCACAGTGAGTACAGTGACAGTGAAGGGCCCTCAGGGGT
CTCACACACACATTCAGGACACACTCACGGTCAAGCTGGATCTCACTATC
CAGAGTCAGGATCCTCAGTTCATGAGAGACACGGAACTACTCATGGACAA
ACAGCAGATACCACTAGACATGGCCACTCTGGTCATGGACAGTCCACACA
GAGAGGGTCCAGGACAACTGGAAGAAGGGCATCTGGCCACAGTGAGTACA
GTGACAGTGAAGGGCACTCAGGGGTCTCACACACACATTCAGGACACGCT
CATGGCCAAGCCGGATCTCAACATGGAGAGTCAGGATCCTCAGTTCATGA
GAGACACGGAACTACTCATGGACAGACAGGAGATACCACTAGACATGCTC
ACTCTGGTCATGGACAGTCCACACAGAGAGGGTCAAGGACAGCTGGAAGA
AGGGGATCTGGCCACAGTGAGTCCAGTGACAGTGAAGTGCACTCAGGGGT
CTCACACACACATTCAGGACACACTTATGGCCAAGCCAGATCTCAACATG
GAGAGTCAGGATCTGCCATTCACGGGAGACAGGGAACTATACATGGACAG
ACAGGAGATACCACTAGACATGGCCAGTCTGGTCATGGACAGTCCACACA
GACAGGTTCCAGGACAACTGGAAGACAAAGATCTAGTCACAGTGAGTCCA
GTGATAGTGAAGTGCACTCAGAGGCCTCACCCACACATTCAGGACACACT
CACAGCCAAGCCGGATCTCGACATGGACAGTCAGGATCCTCAGGTCATGG
GAGACAGGGAACTACTCATGGACAGACAGGAGATACCACTAGACATGCCC
ACTATGGTTATGGACAATCCACACAGAGAGGGTCCAGGACAACTGGAAGA
AGGGGATCTGGCCACAGTGAGTCCAGTGACAGTGAAGTGCACTCATGGGG
CTCACACACACATTCAGGACACATTCAGGGCCAAGCTGGATCTCAACAAA
GACAGCCAGGATCCACAGTTCATGGGAGACTGGAAACTACTCATGGACAG
ACAGGAGATACCACTAGACATGGCCATTCTGGTTATGGACAATCCACACA
GACAGGTTCCAGATCTAGTAGAGCAAGTCATTTTCAGTCACATAGTAGTG
AAAGGCAAAGGCATGGATCAAGTCAGGTTTGGAAACATGGCAGCTATGGA
CCTGCAGAATATGACTATGGGCACACTGGGTATGGGCCTTCTGGTGGCAG
CAGAAAAAGCATCAGTAATTCTCACCTTTCATGGTCAACAGACAGCACTG
CAAACAAGCAACTGTCTAGACATTGA