Web Sitesinden Mail Toplama Aracı

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.*;

public class FetTheMailUI extends javax.swing.JFrame {
public FetTheMailUI() {
initComponents();
}
@SuppressWarnings(“unchecked”)
// <editor-fold defaultstate=”collapsed” desc=”Generated Code”>
private void initComponents() {

jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jMenuBar1 = new javax.swing.JMenuBar();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle(“FetchTheMail”);
setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
setResizable(false);
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(“”));

jLabel1.setFont(new java.awt.Font(“Monospaced”, 1, 14)); // NOI18N
jLabel1.setText(“Web Sayası”);
jButton1.setText(“E-mail Getir”);
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setText(“Dosyayı Aç”);
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 250, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jButton1)
.addGap(18, 18, 18)
.addComponent(jButton2)
.addContainerGap(25, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment. BASELINE)
.addComponent(jLabel1)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton1)
.addComponent(jButton2))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
setJMenuBar(jMenuBar1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane1))
.addContainerGap(50, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap(30, Short.MAX_VALUE)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 336, javax.swing.GroupLayout.PREFERRED_SIZE))
);
pack();
}// </editor-fold>

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
Document doc = Jsoup.connect(jTextField1.getText()).get();
String email = doc.getElementsMatchingOwnText(“(?simx)\\b[A-Z0-9._%+]+” +”@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b”).text();
email = email.replace(” “,”\n”);
jTextArea1.setText(email);
} catch (IOException ex) {
Logger.getLogger(FetTheMailUI.class.getName()).log(Level.SEVERE, null, ex);
}

try{
File dosya = new File(“C:/Users/FetchTheMail/eMails/eMails.txt”);
FileWriter yazici = new FileWriter(dosya,true);
try (BufferedWriter yaz = new BufferedWriter(yazici)) {
yaz.write(jTextArea1.getText()+”    ” );
yaz.close();
}
}
catch (Exception e){
JOptionPane.showMessageDialog(null,e.getMessage());
}
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
try {
Runtime load = Runtime.getRuntime();
String program = “notepad.exe”;
String file = “C:/Users/Cevanşir/Desktop/FetchTheMail/eMails/eMails.txt”;
load.exec(program + ” ” + file);
} catch (IOException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
/**
* @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 {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if (“Nimbus”.equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(FetTheMailUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(FetTheMailUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(FetTheMailUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(FetTheMailUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/*
* Create and display the form
*/
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new FetTheMailUI().setVisible(true);
}
});
}
//”http://mf.maltepe.edu.tr/yazilimtr/kadro”
// Variables declaration – do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
private javax.swing.JTextField jTextField1;
// End of variables declaration
}

Java Uml Çizim

Java’da UML çizimi ile ilgili olarak geliştirilmiş oldukça fazla sayıda araç bulunmaktadır. Bunlardan Eclipse IDE’si kullananlar için en bilineni ve en çok kullanılanı  UML Designer 7.1 program paketidir. Eclipse’te Help menüsünün altında bulunan ve Eclipse Market‘ten kolayca indirilen UML Designer ile UML Diyagram, Activitiy Diyagram, Class Diyagram, State Machine Diyagram ve Component Diagram gibi pek çok farklı diyagram çizilebilir.

Program Eclipse Market‘ten kurulduktan sonra File->New->Other->Uml Project->(Projenin Adını Yazın) Örnek olarak MyUmlProject->Next->Finish diyerek programın ilk çizim ekranını açabilirsiniz. (Mesaj olarak gelen perspektif modülünü açma onayını gerçekleştirin.) Onayladıktan sonra ekranın sağında Modeling yazan buton akit hale gelecektir. Sol tarafta bulunan (Model Explorer) menüsü içerisindeki model.uml yazısının altında bulunan <Model> New Model  yazısının üstüne gelip sağ clik yapıp New Model Package Hiyerarsi seçeneğini seçin ve yeni bir isimle bir model paketi oluşturun. Oluşturulan Hiyararsi  <Model> New Model  yazısının alt kısmına eklenecektir. Artık sol tarafta bulunan Pallette menüsü içerisindeki Package’ın üzere gelip farenin sol tuşuna basılı tutup ekranın ortasına sürükleyerek bir Paket oluşturun. Oluşturulan paketin üzerinde gelip sağ clik yapıp Class Diyagram seçeneyini ekleyin. Eklenen Class Diyagram. Ekranın sol tarafında bulunan Model Explorer içerisinde en alt kısımda görülecektir.  (Package’ın altında)  Arkasından bu Class Diyagramı seçip yine ekranın sol tarafta bulunan Paleti kullanarak Class Diyagram çizim yapmaya başlayabilirsiniz. Detaylı bilgi için aşağıdaki eğitim videosunu izleyebilirsiniz.

Java Fx Nedir?

JavaFx, Java uygulamaları için zenginleştirilmiş bir GUI çalışma ortamıdır. 2007 yılında Sun Microsistem tarafından ilk kez tanıtılmıştır. 2008 yılının aralık ayında ise ilk versiyonunu yayınlamıştır. Flash ve Shockwave teknolojilerine bir yanıt olarak geliştirilmiştir. Java’da bulunan standart Swing yapısına da bir alternatiftir. Swing’e oranla daha görsel ve daha güçlü bir yapısı vardır. Swing gibi kendi componentlerini, işletim sistemi ile daha az iletişime gererek, oluşturabilir. GUI yapsı Swing’e ve AWT’ye kıyasla daha hızlıdır.  Oracle tarafından desteklenen JavaFx içerisinde UI tasarım aracı bulunmaktadır. Bu sayede C# dilinde olduğu gibi nesneleri kullanıcının istediği yere kolayca taşıması ve kolayca özellikleri değiştirmesi imkanı bulunmaktadır. Daha karmaşık uygulamaların yanı sıra; ses, resim, video ve web içeriği barındıran uygulamalarda yapılabilir. CSS teknolojisi ile görsel anlamda daha zenginleştirilmiş arayüzler oluşturulabilir. JavaFx yapısı içerisinde sunulan Fxml ile kendi UI lerini oluşturabilir. Ayrıca JavaFx’de 3D desteği bulunmaktadır. Java Fx mimarisi aşağıdaki resimde görüldüğü gibi  Stage ve içerisinde bulunan Scene yapısından oluşmaktadır.

Java Fx ile Görsel Uygulamalar

JavaFx görsel uygulama paketi kullanarak gelişmiş görsel uygulamalar yapabilirsiniz. Bunun için JavaFx program paketlerinin kullandığınız IDE içerisine kurulması gerekmektedir.

Eğer Eclipse IDE’si kullanıyorsanız. Aşağıdaki adımları takip ederek JavaFx’i kurabilirsiniz.

1.Adım: Eclipse IDE‘de üst kısımda bulunan Help menüsünü seçelim. Açılan alt menüden Install New Software seçeneğini tıklayalım.

2.Adım:Work With seçeneğinin sağ tarafında bulunan Add butonunu tıklayalım.

3.Adım: Açılan Add Repository isimli ekranda Name kısmına e(fx)clipse yazalım ve alt kısımda bulunan Location kısmına ise http://download.eclipse.org/efxclipse/updates-released/2.4.0/site yazıp Ok butonuna tıklayalım.

4.Adım:Eğer yukarıdaki adımları düzgün bir şekilde takip ettiysek program ile ilgili paketler aşağıdaki resimde görüldüğü gibi gelmesi gerekiyor.

javafx_yukleme

5.Adım: Kullandığınız Eclipse IDE’sini check box ile seçelim ( ayrıca istersek single components paketleride seçelim daha detaylı örnekler için gerekecektir ama temel yapı için yüklemesi şart değildir.) ve tamam diyelim.

6.Adım: Karşımıza lisans anlaşması çıkacaktır. O anlaşmayı onaylayıp tamam dediğimizde program paketleri yüklenmeye başlayacaktır.

7.Adım: Bütün dosyalar yüklendikten sonra Eclipse’in tekrardan başlaması gerektiği ile ilgili bir ekran gelecektir. O ekrana tamam dedikten sonra Eclipse restart edilecektir.

8.Adım: Aşağıdaki kodları deneme isimli bir class oluşturup çalıştıralım.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class deneme extends Application {

Button button;

public static void main(String[] args) {
launch(args);
}

@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle(“Title of the Window”);
button = new Button();
button.setText(“Click me”);
StackPane layout = new StackPane();
layout.getChildren().add(button);
Scene scene = new Scene(layout, 300, 250);
primaryStage.setScene(scene);
primaryStage.show();
}

}

Not: Kodları direk kopyalar ve Eclipse’e direk yapıştırırken dikkat edin çifttırnak (“”) karakterlerinde vs problemler olabilir.

9.Adım: Eğer kodları çalıştırmada bir sorunumuz olmadıysa Swing ile oluşturamayacağımız kalitede bir form ekranı hazırlamış olduk.

javafx-ornek-1

Constractorlar’a Giriş

Main Class içi;
public class Main {

public static void main(String[] args) {
// Araba isimli constracter yazılmasa bile program çalışacaktır.
// Java otomatik olarak Araba() isimli constract (inşa) kendi içerisinde oluşturur.
// Ctrl+Space = alt bilgileri listeler

Araba    araba1 = new Araba();
Araba    araba2 = new Araba(18,”X9″);

//araba1.carname = “Renault”;
// public erişim herkeze açık.
// protecded aynı paketin içerisindekiler erişebilir dışındakiler erişemez.
// private sadece o class içerisindeki bilgilere erişilebilir.

System.out.println(“Arabanın Adı ” + araba1.carname + ” Arabanın Fiyatı ” + araba1.price);
System.out.println(“Arabanın Adı ” + araba2.carname + ” Arabanın Fiyatı ” + araba2.price);

}

}

 

Araba Classının içi;
public class Araba {

String carname = “Fiat”;
int price = 5000;

public Araba(){
carname = “Opel”;
price = 6000;
}

// isin aynı olsada farklı parametre değeri ile constractor oluşturulabilir.
public Araba(int arabaninyasi, String arabaninmodeli){
int yasi = arabaninyasi;
String modeli = arabaninmodeli;

}

}