‘Java’ Kategorisi için Arşiv

Basit bir kütüphane ekleyerek bilgisayara girdiğimiz yazının nasıl seslendirilebileceğini adım adım göstereceğim.  Bundan bir sonraki yazı ise sizin sesinizi algılayarak bilgisayara nasıl komut verilebileceği ile ilgili olacak (Speech to text).

1. Öncelikle http://sourceforge.net/projects/freetts/files/ bu linkten dosyamızı indirip masaüstüne çıkartıyoruz.

2. Eclipse açıp yeni bir Java Project oluşturuyoruz.

3. Oluşturduğumuz projeye sağ tıklıyarak Properties kısmına tıklıyoruz.

4. Properties > Java Build Path kısmına geliyoruz. Add External JARs butonuna tıklıyoruz. Buradan masaüstüne çıkarttığımız dosyayının yolunu buluyoruz. Dosyadaki lib klasörünün içindeki .jar uzantılı dosyaların hepsini seçiyoruz ve tamam diyoruz.

5. Gerekli kaynakları eklemiş olduk. Şimdi projemizde Speech adında yeni bir class oluşturuyoruz.

6. Kod içeriğini şu şekilde yapıyoruz.

Aşağıdaki kevin16 kısmı seslendiricidir. İstenilirse aşağıdakilerden biri de kullanılabilir;

kevin, kevin16, mbrola_us1, mbrola_us2, or mbrola_us3

import com.sun.speech.freetts.Voice;
import com.sun.speech.freetts.VoiceManager;
public class Speech { //Speech benim verdiğim class ismi siz kendinize göre değiştirmelisiniz.

public static void main(String args[]){

Voice v;
VoiceManager vm=VoiceManager.getInstance();
v=vm.getVoice(“kevin16”);

v.allocate();
v.speak(“Hi, I’m software engineer”);//Seslendirilecek kelime

}
}

Boolean: True yada false değerlerini alabilir.

Byte: Byte veri tipinin İhtiyacı olan bellek boyutu 1 Byte’dır.

Aldığı değer aralığı -128 ila 127 arasıdır.

Integer: Integer veri tipinin İhtiyacı olan bellek boyutu 4 Byte’dır.

Aldığı değer aralığı -2.147.483.648 ila 2.147.483.647 arasıdır.

Long: Long veri tipinin İhtiyacı olan bellek boyutu 8 Byte’dır.

Aldığı değer aralığı 9.223.372.036.854.775.808    ila 9.223.372.036.854.775.807 arasıdır.

Float: Float veri tipinin İhtiyacı olan bellek boyutu 4 Byte’dır.

Aldığı değer aralığı 1,40239846 * 10-45 ile 3,40282347 * 1038 

Double: Double veri tipinin İhtiyacı olan bellek boyutu 8 Byte‘dır.
Aldığı değer aralığı: 4,94065645841246544 * 10-324 ile 1,79769313486231570 * 10308

Short: Short veri tipinin İhtiyacı olan bellek boyutu 2 Byte’dır.

Aldığı değer aralığı -32.768 ila 32.767 arasıdır.

Char: Karakter veri tipi 2 Byte bellek boyutuna ihityaç duymaktadır. Karakter veri tipi char, sadece bir adet harf,rakam,sembol veya alfanumerik değeri alabilir.

String: String değişken tipi alfnumerik değişkenler tanımlamak için kullanılır. Yani string değişkenlere girilen değer bilgisayar tarafından yazı olarak algılanır ve üzerinde matematiksel işlem yapılamaz.

Oluşturduğumuz tabloda satır ve sütun koordinatlarını kullanarak veriye ulaşmak istiyorsak ;

String deger = String.valueOf(tabloAdi.getValueAt(kaçıncı satır,kaçıncı sütun)); burada dikkat edilmesi gereken ise değerler 1 den değil 0dan başlıyor. Örneğin ilk satır ilk sütundaki bir ifadeyi almak istiyorsak tabloAdi.getValueAt(0,0); yazmalıyız.

Eğer kullanıcının tablodan seçtiği bir değeri almak istiyorsak;

int tablo1satir=sirketTablo.getSelectedRow();//Hangi satır olduğunu alıyor.
int tablo1sutun=sirketTablo.getSelectedColumn();//Hangi sutun olduğunu alıyor

String secilendeger=String.valueOf(sirketTablo.getValueAt(tablo1satir,tablo1sutun));

“java.sql.SQLException: Too many connections” geçenlerde karşılaştığım bu hatanın sebebi oluşturduğumuz statementi kapatmayı unuttuğumuzdan dolayı oluşuyormuş. Örneğin bir formumuz var ve statement’i kapatmayı unuttuk bu formu sürekli açıp kapattığımızda statement tekrar tekrar oluşuyor ve sql güvenlik sebebiyle buna izin vermiyor.Yapacağımız tek şey ise;

Statement st;//Bir statement oluşturduk

try{
st=executeQuery(“select * from tablo”); //st ile sorgumuzu vs. yaptırdık
}catch(Exception ex){
ex.printStackTrace();
}

//işlemlerimizi yaptık.

try{
st.close(); //Bunu yaptığımızda st yi kapatacak ve too many connections hatasını ekrana gelmeyecek.
}catch(Exception ex){
ex.printStackTrace();
}

Formumuza yazdirButton adında bir button ve jtable adında bir tablo koyuyoruz ve tıklandığında tablonun yazdırılmasını istiyoruz.

//import etmemiz gerekenler.

import java.text.MessageFormat;

import java.awt.print.*;

private void yazdirButtonActionPerformed(java.awt.event.ActionEvent evt) {
MessageFormat header = new MessageFormat(“Üst Başlık”);
MessageFormat footer = new MessageFormat(“Alt Başlık”);

try{
jtable.print(JTable.PrintMode.FIT_WIDTH, header, footer);
}catch(Exception ex){
JOptionPane.showMessageDialog(rootPane, ex);
}
}

Bu kodları eklediğimizde yazdır butonuna tıkladığımızda sadece tablodaki verileri yazdıracaktır.

Java Try Catch Yapısı

Yayınlandı: Ocak 30, 2013 / Java
Etiketler:, ,

Çalışma zamanında herhangi bir hata oluştuğunda yapılacak işlemleri belirlememizi sağlar.SQL ifadelerinde çokça kullanılır.

Örneğin;

package trycatch;

public class Main {

public static void main(String[] args) {

try {

int a = 42 / 0;

} catch (Exception Hata) {

System.out.print(” Hata oluştu :” + Hata);

}
}
}

Javada kullanabileceğiniz bazı matematiksel fonksiyonlar:Java Matematiksel Fonksiyonlar

Textfield’den kullanıcı veri girerek sql tablomuzda nasıl yeni satır oluşturacağımızın kodlarını vereceğim:
1

Önce textfieldlerimizi oluşturalım ve bir tane buton ekleyelim. Daha sonra javayla SQL baglantimizi yapalım. ve ekleyeceğimiz tabloyu statement ile select yapalım.

personellerSonucKumesi = st.executeQuery(“SELECT * FROM  personeller”);

Ekle butonuna 2 kere tıkladığımız java kullanıcı butona tıkladığında neler yapılacağını yazacağımız kısmı açacaktır. ve kodlar:

//Adi, Soyadi, DogumTarihi, Gorevi sql’deki tablomuzda bulunun kolonların ismidir. 

//moveToInsertRow() ile javaya yeni kayıt ekleyeceğimizi söylüyoruz.

//personellerSonucKumesi.updateString(“Adi”,adTextField.getText()); ile

// “Adi” kolonuna oluşturduğumuz adTextField ‘den kullanıcının yazdığı kayıdı alarak eklemesini söylüyoruz.

private void ekleButonActionPerformed(java.awt.event.ActionEvent evt) {
try{
personellerSonucKumesi.moveToInsertRow();
personellerSonucKumesi.updateString(“Adi”,adTextField.getText());
personellerSonucKumesi.updateString(“Soyadi”,soyadTextField.getText());
personellerSonucKumesi.updateString(“DogumTarihi”,yasTextField.getText());
personellerSonucKumesi.updateString(“Gorevi”,goreviTextField.getText());
personellerSonucKumesi.updateString(“TelefonNumarasi”,telnoTextField.getText());
personellerSonucKumesi.insertRow();
JOptionPane.showMessageDialog(rootPane, “Yeni Kayit Eklendi”);

}catch(SQLException ex){
JOptionPane.showConfirmDialog(null, “Kayıt Eklenemedi”, “Kişiler Tablosu”, JOptionPane.PLAIN_MESSAGE);
}
}

Bir önceki yazıda Combobox’a seçenek eklemeyi göstermiştim. Şimdi ise bu seçenekleri direk sql’den alması için gereken kodları göstereceğim.

 

//Burada baglantiAc() fonksiyonu ile statement oluşturmayı java ile sql’e bağlanma yazısında göstermiştim.

//personelSonucKumesi = st.executeQuery(“SELECT Adi FROM personeller”); ile sql’e personeller tablosundan sadece isim sütununu çekmesini söylüyoruz. Daha sonra personelComboYaz() fonksiyonunu çağırarak çektiğimiz verileri combobox’a yazdırıyoruz.Bu fonksiyon :

while(personelSonucKumesi.next()){
personelCombo.addItem(personelSonucKumesi.getString(“Adi”));
}

While döngüsüyle personelSonucKumesi’nde tüm verileri alana kadar devam ettiriyoruz.

personelSonucKumesi.getString(“Adi”) ile bu verilerden Adi sütunundaki satırları tek tek çekiyoruz.

 

 

public Statement baglantiAc() throws Exception{
Class.forName(driver).newInstance();
baglayici = DriverManager.getConnection(url, userName, password);
return baglayici.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
}
public NewJFrame(){
this.ataPencere = ata;
initComponents();
Statement st = null;

try {
st = baglantiAc(); //veritabanına bağlanılıyor
} catch (Exception ex) {
JOptionPane.showConfirmDialog(null, “Bağlantı Başarısız”, “MySQL Bağlantısı”, JOptionPane.PLAIN_MESSAGE);
}
try{
personelSonucKumesi = st.executeQuery(“SELECT Adi FROM personeller”);
personelComboYaz();
}catch(Exception ex){

}
}

public void personelComboYaz(){
try {
while(personelSonucKumesi.next()){
personelCombo.addItem(personelSonucKumesi.getString(“Adi”));
}
} catch (SQLException ex) {
Logger.getLogger(AIsEkle.class.getName()).log(Level.SEVERE, null, ex);
}
}

Bir combobox oluşturduk ve aşağıdaki gibi içinden kullanıcının herhangi bir veriyi seçmesini istiyorsak:1

public NewJFrame() {
initComponents();
jComboBox1.addItem(“Seçenek1”);
jComboBox1.addItem(“Seçenek2”);
jComboBox1.addItem(“Seçenek3”);
}

//jComboBox1 programda oluşturduğumuz combobox’un adıdır.Seçenek1, Seçenek2, Seçenek3 yazanlar ise combobox’un içine eklediğimiz verilerdir.

 

Veya NetBeans bunun için bize bir kısayol sunmuş: jComboBox1>model>Secenek1,Secenek2 burada ekleyeceğimiz seçeneklerin arasına virgül koyarak yazmalıyız.

2