import java.awt.Color;
import java.awt.event.KeyEvent;
import javax.print.attribute.AttributeSet;
import javax.swing.JOptionPane;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* NopelIdpel.java
*
* Created on Feb 16, 2012, 8:53:48 AM
*/
/**
*
* @author Admin
*/
public class NopelIdpel
extends javax.
swing.
JFrame {
/** Creates new form NopelIdpel */
public NopelIdpel() {
initComponents();
//txtNopel.setDocument(new batasiInput((byte)9).getFilter());
this.setLocationRelativeTo(null);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
lblJudul
= new javax.
swing.
JLabel();
lblNopel
= new javax.
swing.
JLabel();
lblIdpel
= new javax.
swing.
JLabel();
btnConvert
= new javax.
swing.
JButton();
btnClear
= new javax.
swing.
JButton();
btnClose
= new javax.
swing.
JButton();
pnlColor
= new javax.
swing.
JPanel();
pnlKonversi
= new javax.
swing.
JPanel();
lblFormatNopel
= new javax.
swing.
JLabel();
lblFormatIdpel
= new javax.
swing.
JLabel();
jTextField1.setText("jTextField1");
lblJudul.
setFont(new java.
awt.
Font("Tahoma",
1,
18)); // NOI18N
lblJudul.setText("KONVERSI NOPEL KE IDPEL");
lblNopel.
setFont(new java.
awt.
Font("Tahoma",
1,
14)); // NOI18N
lblNopel.setText("NOPEL");
lblIdpel.
setFont(new java.
awt.
Font("Tahoma",
1,
14));
lblIdpel.setText("IDPEL");
txtNopel.setToolTipText("");
public void actionPerformed
(java.
awt.
event.
ActionEvent evt
) {
txtNopelActionPerformed(evt);
}
});
txtNopel.
addKeyListener(new java.
awt.
event.
KeyListener(){
}
}
int banyakKarakter = txtNopel.getText().length();
if(banyakKarakter != 8){
btnConvert.setEnabled(false);
}else {
//Check character combination
boolean isValidNopel = false;
boolean isValidFirstLetter = false;
boolean isValidSecondLetter = false;
boolean isValidNumber = false;
String nopel
= txtNopel.
getText();
String allowableFirstLetter
[] = {"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z"};
String allowableSecondLetter
[] = {"B",
"C",
"D",
"E",
"F",
"G",
"H",
"K",
"M",
"N",
"P",
"R"};
//check first letter
try {
//try convert to integer
Integer.
parseInt(nopel.
substring(0,
1));
isValidFirstLetter = false;
//then its string
for (int i = 0; i < allowableFirstLetter.length; i++) {
if (allowableFirstLetter[i].compareToIgnoreCase(nopel.substring(0, 1)) == 0) {
isValidFirstLetter = true;
break;
}
}
}
//just check the second letter if first letter is valid
if (isValidFirstLetter) {
//check second letter
try {
//try convert to integer
Integer.
parseInt(nopel.
substring(1,
2));
isValidSecondLetter = false;
//then its string
for (int i = 0; i < allowableSecondLetter.length; i++) {
if (allowableSecondLetter[i].compareToIgnoreCase(nopel.substring(1, 2)) == 0) {
isValidSecondLetter = true;
break;
}
}
}
//just check rest number if second letter is valid
if (isValidSecondLetter) {
for (int i = 2; i< 8; i ++) {
//check rest is number
try {
//try convert to integer
Integer.
parseInt(nopel.
substring(i, i
+1));
isValidNumber = true;
//then its string
isValidNumber = false;
break;
}
}
}
}
//build valid for nopel
isValidNopel = isValidFirstLetter && isValidSecondLetter && isValidNumber;
if(isValidNopel)
btnConvert.setEnabled(true);
}
}
});
//disable the button convert first, before input
btnConvert.setEnabled(false);
btnConvert.
setFont(new java.
awt.
Font("Tahoma",
1,
12)); // NOI18N
btnConvert.setText("CONVERT");
public void actionPerformed
(java.
awt.
event.
ActionEvent evt
) {
btnConvertActionPerformed(evt);
}
});
btnClear.
setFont(new java.
awt.
Font("Tahoma",
1,
12)); // NOI18N
btnClear.setText("CLEAR");
public void actionPerformed
(java.
awt.
event.
ActionEvent evt
) {
btnClearActionPerformed(evt);
}
});
btnClose.
setFont(new java.
awt.
Font("Tahoma",
1,
12)); // NOI18N
btnClose.setText("CLOSE");
public void actionPerformed
(java.
awt.
event.
ActionEvent evt
) {
btnCloseActionPerformed(evt);
}
});
buttonGroup1.add(cbRed);
cbRed.setText("Red");
public void actionPerformed
(java.
awt.
event.
ActionEvent evt
) {
cbRedActionPerformed(evt);
}
});
buttonGroup1.add(cbBlue);
cbBlue.setText("White");
public void actionPerformed
(java.
awt.
event.
ActionEvent evt
) {
cbBlueActionPerformed(evt);
}
});
buttonGroup1.add(cbGray);
cbGray.setText("Gray");
public void actionPerformed
(java.
awt.
event.
ActionEvent evt
) {
cbGrayActionPerformed(evt);
}
});
javax.swing.GroupLayout pnlColorLayout = new javax.swing.GroupLayout(pnlColor);
pnlColor.setLayout(pnlColorLayout);
pnlColorLayout.setHorizontalGroup(
pnlColorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnlColorLayout.createSequentialGroup()
.addContainerGap()
.addGroup(pnlColorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(cbBlue)
.addComponent(cbGray)
.addComponent(cbRed))
.
addContainerGap(javax.
swing.
GroupLayout.
DEFAULT_SIZE,
Short.
MAX_VALUE))
);
pnlColorLayout.setVerticalGroup(
pnlColorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnlColorLayout.createSequentialGroup()
.addGap(10, 10, 10)
.addComponent(cbRed)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbBlue, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cbGray)
.
addContainerGap(21,
Short.
MAX_VALUE))
);
buttonGroup2.add(rbtNopel);
rbtNopel.setText("Konversi Nopel");
public void actionPerformed
(java.
awt.
event.
ActionEvent evt
) {
rbtNopelActionPerformed(evt);
}
});
buttonGroup2.add(rbtIdpel);
rbtIdpel.setText("Konversi Idpel");
public void actionPerformed
(java.
awt.
event.
ActionEvent evt
) {
rbtIdpelActionPerformed(evt);
}
});
javax.swing.GroupLayout pnlKonversiLayout = new javax.swing.GroupLayout(pnlKonversi);
pnlKonversi.setLayout(pnlKonversiLayout);
pnlKonversiLayout.setHorizontalGroup(
pnlKonversiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlKonversiLayout.createSequentialGroup()
.addComponent(rbtNopel)
.
addPreferredGap(javax.
swing.
LayoutStyle.
ComponentPlacement.
RELATED,
3,
Short.
MAX_VALUE)
.addComponent(rbtIdpel)
.addContainerGap())
);
pnlKonversiLayout.setVerticalGroup(
pnlKonversiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnlKonversiLayout.createSequentialGroup()
.addContainerGap()
.addGroup(pnlKonversiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(rbtIdpel)
.addComponent(rbtNopel))
.
addContainerGap(javax.
swing.
GroupLayout.
DEFAULT_SIZE,
Short.
MAX_VALUE))
);
lblFormatNopel.
setFont(new java.
awt.
Font("Tahoma",
0,
10)); // NOI18N
lblFormatNopel.
setForeground(new java.
awt.
Color(51,
51,
51));
lblFormatNopel.setText("mis: CN0622067");
lblFormatIdpel.
setFont(new java.
awt.
Font("Tahoma",
0,
10)); // NOI18N
lblFormatIdpel.
setForeground(new java.
awt.
Color(51,
51,
51));
lblFormatIdpel.setText("mis: 513010285649");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(83, 83, 83)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addComponent(btnClear)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnConvert, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnClose, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lblNopel, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lblIdpel))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addGap(2, 2, 2)
.addComponent(lblFormatNopel, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(2, 2, 2)
.addComponent(lblFormatIdpel, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(txtIdpel)
.addComponent(txtNopel)
.
addComponent(jSeparator1, javax.
swing.
GroupLayout.
DEFAULT_SIZE,
280,
Short.
MAX_VALUE))))
.addGap(30, 30, 30)
.addComponent(pnlColor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(73, 73, 73))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addComponent(lblJudul)
.addGap(181, 181, 181))
.addGroup(layout.createSequentialGroup()
.addGap(202, 202, 202)
.
addComponent(pnlKonversi, javax.
swing.
GroupLayout.
DEFAULT_SIZE, javax.
swing.
GroupLayout.
DEFAULT_SIZE,
Short.
MAX_VALUE)
.addGap(210, 210, 210))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(lblJudul)
.addGap(19, 19, 19)
.addComponent(pnlKonversi, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtNopel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lblNopel))
.
addPreferredGap(javax.
swing.
LayoutStyle.
ComponentPlacement.
RELATED, javax.
swing.
GroupLayout.
DEFAULT_SIZE,
Short.
MAX_VALUE)
.addComponent(lblFormatNopel)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtIdpel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lblIdpel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lblFormatIdpel)
.addGap(34, 34, 34)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnConvert)
.addComponent(btnClear)
.addComponent(btnClose))
.addGap(26, 26, 26))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(pnlColor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(83, 83, 83))))
);
pack();
}// </editor-fold>//GEN-END:initComponents
//private void txtNopelKeyPressed(java.awt.event.KeyEvent evt) {
// // TODO add your handling code here:
// int nilai_enter=evt.VK_ENTER;
// int kode=evt.getKeyCode();
// if (kode==nilai_enter){
// JOptionPane.showMessageDialog(null, "Anda telah menekan tombol ENTER untuk memproses...");
// }
// }
private void txtNopelActionPerformed
(java.
awt.
event.
ActionEvent evt
) {//GEN-FIRST:event_txtNopelActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_txtNopelActionPerformed
//private void batasiKarakter(){
// int banyakKarakter=txtNopel.getText().length();
// if(banyakKarakter<9){
// JOptionPane.showMessageDialog(null, "Karakter yang Anda masukkan kurang dari 9 karakter");
// txtNopel.setText("");
// }
// else if (banyakKarakter>9){
// JOptionPane.showMessageDialog(null, "Karakter yang Anda masukkan melebihi dari 9 karakter");
// txtNopel.setText("");
// }
//}
private void btnConvertActionPerformed
(java.
awt.
event.
ActionEvent evt
) {//GEN-FIRST:event_btnConvertActionPerformed
// TODO add your handling code here:
// batasiKarakter();
Nopel nopelConverter = new Nopel(txtNopel.getText());
nopelConverter.convert();
txtIdpel.setText(nopelConverter.getIdPel());
}//GEN-LAST:event_btnConvertActionPerformed
private void btnClearActionPerformed
(java.
awt.
event.
ActionEvent evt
) {//GEN-FIRST:event_btnClearActionPerformed
// TODO add your handling code here:
txtNopel.setText("");
txtIdpel.setText("");
}//GEN-LAST:event_btnClearActionPerformed
private void btnCloseActionPerformed
(java.
awt.
event.
ActionEvent evt
) {//GEN-FIRST:event_btnCloseActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_btnCloseActionPerformed
private void cbBlueActionPerformed
(java.
awt.
event.
ActionEvent evt
) {//GEN-FIRST:event_cbBlueActionPerformed
// TODO add your handling code here:
this.
getContentPane().
setBackground(Color.
WHITE);
}//GEN-LAST:event_cbBlueActionPerformed
private void cbGrayActionPerformed
(java.
awt.
event.
ActionEvent evt
) {//GEN-FIRST:event_cbGrayActionPerformed
// TODO add your handling code here:
this.
getContentPane().
setBackground(Color.
LIGHT_GRAY);
}//GEN-LAST:event_cbGrayActionPerformed
private void cbRedActionPerformed
(java.
awt.
event.
ActionEvent evt
) {//GEN-FIRST:event_cbRedActionPerformed
// TODO add your handling code here:
this.
getContentPane().
setBackground(Color.
CYAN);
}//GEN-LAST:event_cbRedActionPerformed
private void rbtIdpelActionPerformed
(java.
awt.
event.
ActionEvent evt
) {//GEN-FIRST:event_rbtIdpelActionPerformed
// TODO add your handling code here:
txtNopel.setEnabled(false);
txtIdpel.setEnabled(true);
lblFormatIdpel.setEnabled(true);
lblFormatNopel.setEnabled(false);
txtIdpel.setText("");
}//GEN-LAST:event_rbtIdpelActionPerformed
private void rbtNopelActionPerformed
(java.
awt.
event.
ActionEvent evt
) {//GEN-FIRST:event_rbtNopelActionPerformed
// TODO add your handling code here:
txtIdpel.setEnabled(false);
txtNopel.setEnabled(true);
lblFormatNopel.setEnabled(true);
lblFormatIdpel.setEnabled(false);
txtNopel.setText("");
}//GEN-LAST:event_rbtNopelActionPerformed
/**
* @param args the command line arguments
*/
public static void main
(String args
[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
if ("Nimbus".equals(info.getName())) {
javax.
swing.
UIManager.
setLookAndFeel(info.
getClassName());
break;
}
}
java.util.logging.Logger.getLogger(NopelIdpel.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
java.util.logging.Logger.getLogger(NopelIdpel.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
java.util.logging.Logger.getLogger(NopelIdpel.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
java.util.logging.Logger.getLogger(NopelIdpel.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
public void run() {
new NopelIdpel().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.
swing.
JButton btnClear
;
private javax.
swing.
JButton btnClose
;
private javax.
swing.
JButton btnConvert
;
private javax.
swing.
JLabel lblFormatIdpel
;
private javax.
swing.
JLabel lblFormatNopel
;
private javax.
swing.
JLabel lblIdpel
;
private javax.
swing.
JLabel lblJudul
;
private javax.
swing.
JLabel lblNopel
;
private javax.
swing.
JPanel pnlColor
;
private javax.
swing.
JPanel pnlKonversi
;
// End of variables declaration//GEN-END:variables
// class batasiInput{
// byte length;
// PlainDocument filter;
// public batasiInput(byte length){
// this.length=length;
// }
// public PlainDocument getFilter(){
// filter=new PlainDocument(){
// public void insertString(int offs, String str,AttributeSet a) throws BadLocationException{
// int ab=txtNopel.getText().length();
// if(ab<length){
// //super.insertString(offs, str, null);
// super.insertString(offs, str, a);
// }
// }
// };
// return filter;
// }
// }
}