Tartışma:Java

message: Süper bir makale...Javaya başlamadan önce mutlaka okunmalı..Çok sade, aynı zamanda çok açıklayıcı!
Afsina tesekkur ederim, uzun sureden beli elemek istedigim bazi detaylari cikarmissin. Daha sonra cikan detaylari makale haline getirebiliriz, icerik olmaya adaylar bence. Eline saglik!
Aras 02:17, 5 Aralık 2005 (UTC)
* "Merhaba Dünya" kısmını ekledim. İngilizcesinde olduğu gibi. Vaktim olduğunca servletler vs konusunda da eklemeler yapıcam inşallah. Mesela Swing ve AWT örnekleri de koyulmalı bence! - FIRAT KÜÇÜK 21:43, 15 Mart 2007 (UTC)

message: Merhaba dünyayı anladıkta uzay da nereden çıktı? - FIRAT KÜÇÜK 08:02, 24 Temmuz 2007 (UTC)
----
Cop toplama adli basligi Artik veri toplama olarak degistirilmesi bence daha uygun! Direk ingilizce karsiligi olarak cevrilmemelidir. Tesekkurler..
--Simtay 13:32, 7 Ekim 2007 (UTC)
replies: text: Neden Ingilizce'den bire bir ceviri yapmamamiz gerektigini anlayamadim. Turkce karsiligi anlamsiz olmadigi surece bence bir sorun yok. Cop toplama teriminin aynen kalmasi gerektigini dusunuyorum. Cem Mergenci 15:42, 7 Ekim 2007 (UTC)
----
"Cop toplama" ile anlatmak istedigimizi tam anlamiyla yansitamiyoruz. Garbage kelimesi Turkce'de "Cop" anlamina gelebilir, fakat tam olarak vermek istedigimiz anlami veremiyoruz. Cop ifadesinin yerine "Artik veri" ifadesinin kullanilmasindan yanayim. Bire bir ceviriden yana degilim demekle bunu ifade etmek istiyorum, yani daha aciklayici ifadeler kullanmak! Iyi gunler.
Simtay 11:35, 26 Ekim 2007 (UTC)
Sayfada bulunan Artık Veri Toplayıcısı, Java da ki deneyimlerime dayanarak söylüyorum, yanlış bir çevirimdir. Çöp Toplayıcısı her ne kadar kimsenin hoşuna gitmese de Artık Veri Toplayıcısı, farklı bir anlama gelmektedir. Bence değiştirilmesi gerekir.--Onurtkn 13:52, 16 Mayıs 2008 (UTC)
"düzlemden bağımsız" da ne demek Allahım. Valla nereden buluyorsunuz bu saçma sapan kelimeleri. Bunun orjinali Platform Independent'tir. Öyle sözlüğe bakım ilk gelen kelimeyi yazmakla olmuyor bu işler. Burada platformun kastettiği, farklı donanımsal (MAC, PC, gömülü sistemler, mobil cihazlar) veya yazılımsal (işletim sistemi) ortamlardır. Düzlemden bağımsızmış, ha ha ha.— Bu imzasız yazı İamalegend (mesaj•katkılar) tarafından eklenmiştir. 
GARBAGE COLLECTION demiş adamlar. Neden UNUSED DATA COLLECTION dememiş (Kullanılmayan/Artık Veri Toplama) dememiş. Neden WATCH DOG diye bir terim var, Niye ona sizin deyiminizle "daha anlamlı" bir isim bulmamışlar. Dahası da var NEDEN İŞLETİM SİSTEMİNİN ANA PARÇASINDA "KERNEL" DEMİŞLER, İNGİLİZCEDE ÇEKİRDEK (VEYA TOHUM) ANLAMINDA. Çünkü bir terimin daha anlamlı olması veya insanların daha rahat anlaması için gerçek hayattan kelimeler veriyorlar. Gerçek hayatta "ÇÖP" kavramını ne için kullanıyoruz, bir iş için kullandığımız veya tükettiğiniz maddelerin artık işimize yaramayan kısımları. Yazılımda da öyle. Birşeyi kullanıyorsun (Memory) daha sonra ihtiyacın kalmıyor (Program çalışması bitiyor) ve artık o bir "ÇÖP" tür. Ne yapman lazım: ÇÖPLERİ TOPLAMAN. SAYGILARIMLA.
A COMPUTER ENGINEER — Bu imzasız yazı 78.189.108.192 (mesaj•katkılar) tarafından eklenmiştir.
thread_title:  uzay da nereden çıktı? 

message: Fibonacci dizisi—>Kendinden önceki iki sayının toplamı bir sonraki sayıya eşit olmasıdır. Yani bir sayı kendinden önceki iki sayının toplamına eşitse buna fibonacci dizisi denir. Ben bu dizi için özel bir algoritma geliştirdim. Özellikle bir problemin çözümüne başlamadan önce problemin temel çözüm yollarını soyut bir şekilde algoritmik olarak ifade edebilirseniz çok az kod la çözüme gidersiniz.
  1: package www.ethemsulan.com;
  2: public class Fibonacci {
  3:   public static void main(String[] args) {
  4:     int ethemsulan1=0,ethemsulan2=1;
  5:     while (ethemsulan2<100) {
  6:       System.out.print(ethemsulan2+"\t");
  7:       ethemsulan2=ethemsulan1+ethemsulan2;
  8:       ethemsulan1=ethemsulan2-ethemsulan1;
  9:       }
 10:     }
 11: }
Orjinal Kod: http://www.ethemsulan.com/2009/10/fibonacci-say-dizisi.html
4: te ethemsulan1=0 ve ethemsulan2=1 başlangıç değerlerini atıyor. 5 te ethemsulan2 sayisi verilen limitten küçükse while döngüsüne girip hemen ekrana yazıyor ethemsulan2 değişkenini. Fibonacci kendinden iki önceki sayının toplamı kendisini veriyor. Bunu ethemsulan2=ethemsulan1+ethemsulan2 ile sağlıyoruz. Burdaki ethemsulan2 kendinden bir önceki sayi olur. 8: de ise ethemsulan1 yi yani kendinden iki önceki sayiyi bulmuş oluyor.
Dikkat while döngüsüne ilk girince mutalaka ethemsulan2 değerini yazdırmamız lazım sonra ethemsulan2 üzerinden işlem yapıyoruz. Aksi halde bunu çok uzun kodlarla gerçekleştirebilirsiniz ancak. Yani ethemsulan1=0 ve ethemsulan2 =1 hemen while de ethemsulan2 yi yani 1 i yaz. Sonra 7: de ethemsulan2=0+1 ata ve 8: de ethemsulan1=1-0 ata. Böylece 1 1 2 3 5 8 13 21 … şeklinde devam ediyor.Biz diziyi 1 den başlattık.
--Ethemsulan 23:30, 22 Aralık 2009 (UTC)
//--------------------------------------------------------------------------------------------------------------------------------
Klavyeden Basılan Tuşun ASCII Değerini ve Hangi Tuşa Basıldığını Gösteren Programın Java Kodu
   1.
      package www.ethemsulan.com;
   2.
       
   3.
      import java.awt.event.KeyEvent;
   4.
      import java.awt.event.KeyListener;
   5.
      import javax.swing.JFrame;
   6.
      import javax.swing.JLabel;
   7.
       
   8.
      public class KlavyeOlayAlg extends JFrame implements KeyListener{
   9.
       
  10.
              JLabel lb=new JLabel("Bir Tusa Bas");
  11.
              JLabel lb2=new JLabel();
  12.
              JLabel lb3=new JLabel();
  13.
       
  14.
              public KlavyeOlayAlg(){
  15.
              this.setBounds(10, 20, 600, 500);
  16.
              lb.setBounds(10, 20, 260, 60);
  17.
              lb2.setBounds(10, 90, 300, 40);
  18.
              lb3.setBounds(10, 120, 200, 40);
  19.
              this.getContentPane().setLayout(null);
  20.
             
  21.
              this.getContentPane().add(lb);
  22.
              this.getContentPane().add(lb2);
  23.
              this.getContentPane().add(lb3);
  24.
       
  25.
              this.addKeyListener(this);  
  26.
              }
  27.
       
  28.
              public static void main(String[] args) {
  29.
       
  30.
                      KlavyeOlayAlg obj=new KlavyeOlayAlg();
  31.
       
  32.
                obj.show();
  33.
              }
  34.
       
  35.
             
  36.
              public void keyPressed(KeyEvent e) {   
  37.
                     
  38.
              }
  39.
              char k;
  40.
              String veri="";
  41.
              public void keyReleased(KeyEvent e) {
  42.
                      veri=String.valueOf(e.getKeyCode());
  43.
                      lb2.setText("Tusun ASCII Degeri-->"+veri);
  44.
                      k=e.getKeyChar();
  45.
                      lb3.setText("Basilan Tus-->"+String.valueOf(k));
  46.
                     
  47.
              }
  48.
       
  49.
              public void keyTyped(KeyEvent e) {
  50.
                      lb.setText("Klavyeden Herhangi Bir Tusa Basin");
  51.
              }
  52.
       
  53.
              }
this.addKeyListener(this);  JFrame den kalıtımla gelen form anlamında ilk this. addKeyListener(this) bu da lablelerden hangisi tetiklenirse onu aliyor. Yani tetiklenen labeli forma ekler.Metodların içinde de bu labellere basılan tuşları text olarak yazılmasını sağladık.
Orjinal Kod:http://www.ethemsulan.com/2009/12/klavyeden-baslan-tusun-ascii-degerini.html--Ethemsulan 23:30, 22 Aralık 2009 (UTC)
--Ethemsulan 23:30, 22 Aralık 2009 (UTC)
//----------------------------------------------------------------------------------------------
Dinamik ListBox(JList) Java Örneği
   1.
      package www.ethemsulan.com;
   2.
      import java.util.*;
   3.
      import java.awt.*;
   4.
      import java.awt.event.*;
   5.
      import javax.swing.*;
   6.
      import javax.swing.event.*;
   7.
       
   8.
      class DinamikForum      extends         JFrame          implements      ActionListener, ListSelectionListener{
   9.
              private JPanel          anaPanlemizi;
  10.
              private JList           listBox;
  11.
              private Vector          vek;
  12.
              private JButton         eklemeButtonu;
  13.
              private JButton         silButtonu;
  14.
              private JTextField      textAlani;
  15.
              private JScrollPane dinamikPanel;
  16.
              private JButton         guncelButtonu;
  17.
       
  18.
              public DinamikForum(){
  19.
      //form boyutlandir ve deger ekleme
  20.
                      setTitle( "Dinamaik Uygulama" );
  21.
                      setBounds(400, 200, 400, 300);
  22.
                      anaPanlemizi = new JPanel();
  23.
                      getContentPane().add( anaPanlemizi );
  24.
       
  25.
                      vek = new Vector();
  26.
       
  27.
      //listbox olusturuken vectoru aliyor parametre olarak
  28.
      //listbox secileni dinlemeye aliyor
  29.
                      listBox = new JList( vek );
  30.
                      listBox.addListSelectionListener( this );
  31.
       
  32.
      //listebox i dinamik panele ve dinamik panelde anapanele eklenmis
  33.
      //bu anapanelde frameye eklenece islemelerden sonra
  34.
                      dinamikPanel = new JScrollPane();
  35.
                      dinamikPanel.getViewport().add( listBox );
  36.
                      anaPanlemizi.add( dinamikPanel, BorderLayout.CENTER );
  37.
      //Panel olustur metodunu yapici icinde cagirdik
  38.
                      panelOlustur();
  39.
              }
  40.
              public void panelOlustur(){
  41.
      //verileri tutan panel
  42.
                      JPanel veriPaneli = new JPanel();
  43.
                      veriPaneli.setLayout( new BorderLayout() );
  44.
                      anaPanlemizi.add(veriPaneli);
  45.
      //ekleme buttonu tanimlanmis ve tiklanmasini dinlemeye aliniyor
  46.
      //yani button tiklaninca yapilacak islemler
  47.
                      eklemeButtonu = new JButton( "Ekle" );
  48.
                      veriPaneli.add( eklemeButtonu, BorderLayout.BEFORE_LINE_BEGINS);
  49.
                      eklemeButtonu.addActionListener( this );
  50.
                     
  51.
                      guncelButtonu=new JButton("Guncelle");
  52.
                      guncelButtonu.addActionListener(this);
  53.
                      veriPaneli.add(guncelButtonu, BorderLayout.CENTER);
  54.
                     
  55.
                      silButtonu = new JButton( "Sil" );
  56.
                      veriPaneli.add( silButtonu, BorderLayout.AFTER_LINE_ENDS );
  57.
                      silButtonu.addActionListener( this );
  58.
       
  59.
             
  60.
                      textAlani = new JTextField();
  61.
                      veriPaneli.add( textAlani, BorderLayout.BEFORE_FIRST_LINE );
  62.
              }
  63.
       
  64.
      //Listboxta secilen degeri textalanina agetiriyor
  65.
      //guncelelem silem islemleri sonra gerceklestiriliyor
  66.
              public void valueChanged( ListSelectionEvent olay ){
  67.
                      if( olay.getSource() == listBox && !olay.getValueIsAdjusting()){
  68.
                              String secilenDeger = (String)listBox.getSelectedValue();
  69.
                              if( secilenDeger != null )
  70.
                                      textAlani.setText( secilenDeger );
  71.
                      }
  72.
              }
  73.
      //getSoruce olayin kaynagaini yani hangi button tiklandi
  74.
      //ona ozgu islemler gerceklestirilir
  75.
              public void actionPerformed( ActionEvent olay ){
  76.
                      if( olay.getSource() == eklemeButtonu ){
  77.
                              String textDegerEkle= textAlani.getText();
  78.
                              if( textDegerEkle != null ){
  79.
                                      vek.addElement(textDegerEkle);
  80.
                                      textAlani.setText(null);
  81.
                                      listBox.setListData( vek );
  82.
                                      dinamikPanel.revalidate();
  83.
                                      dinamikPanel.repaint();
  84.
                              }
  85.
                              if(textDegerEkle.equals("")){
  86.
                                      JOptionPane.showMessageDialog(null, "Eklenecek Deger Yok ki");
  87.
                              }
  88.
                      }
  89.
                      if(olay.getSource()==guncelButtonu){
  90.
                              String listBoxDeger=textAlani.getText();
  91.
                              int guncKonum=listBox.getSelectedIndex();
  92.
                              if(listBoxDeger!=null){
  93.
                                      if(guncKonum>=0){
  94.
                                              vek.removeElementAt(guncKonum);
  95.
                                              listBox.setListData(vek);
  96.
                                              dinamikPanel.repaint();
  97.
                                              String girilenDeger=textAlani.getText();
  98.
                                              vek.add(guncKonum, girilenDeger);
  99.
                                              listBox.setListData(vek);
 100.
                                              textAlani.setText(null);
 101.
                                              dinamikPanel.revalidate();
 102.
                                              dinamikPanel.repaint();                                
 103.
                                      }else{
 104.
                                              JOptionPane.showMessageDialog(null, "Guncellenecek Deger Yok ki");
 105.
                                      }
 106.
                                     
 107.
                              }
 108.
                      }
 109.
                      if( olay.getSource() == silButtonu ){
 110.
                              int silinecekKonum = listBox.getSelectedIndex();
 111.
                              if( silinecekKonum >= 0 ){     
 112.
                                      vek.removeElementAt( silinecekKonum );
 113.
                                      textAlani.setText(null);
 114.
                                      listBox.setListData( vek );
 115.
                                      dinamikPanel.revalidate();
 116.
                                      dinamikPanel.repaint();
 117.
                              }else{
 118.
                                      JOptionPane.showMessageDialog(null, "Silinecek Deger Yok ki");
 119.
                              }
 120.
                      }
 121.
              }
 122.
       
 123.
              public static void main( String[]  args){
 124.
      //Siniftan nesne olusturuyor ve setVisible()
 125.
      //gorunurlugunu aktiflestiriyor
 126.
                      DinamikForum formnesnesi        = new DinamikForum();
 127.
                      formnesnesi.setVisible( true );
 128.
              }
 129.
      }
Orjinal Kod:http://www.ethemsulan.com/2009/12/dinamik-listboxjlist-java-ornegi.html
Buton olayını(tiklama) dinleyebilmek için ActionListener ve JList’i dinlemeke içinse  ListSelectionListener(eleman seçilince) arayüzünü implemente eetmiş.
--Ethemsulan 23:41, 22 Aralık 2009 (UTC)
//-------------------------------------------------------------------------------------------------------
Java ile Mysql Veritabanına Bağlanma Örneği(Java MySql Connection)
   1.
      package www.ethemsulan.com;
   2.
       
   3.
      import java.sql.*;
   4.
       
   5.
      import javax.swing.JOptionPane;
   6.
       
   7.
      public class Veritabani {
   8.
       
   9.
       
  10.
              public static void main(String[] args) throws SQLException {
  11.
                       Connection baglanti = null;
  12.
                        String username=JOptionPane.showInputDialog("Ad Gir");
  13.
                        String soyad=JOptionPane.showInputDialog("Soyad gir");
  14.
                        String email=JOptionPane.showInputDialog("E-mail Adresinizi Giirn");
  15.
                        int yas=Integer.parseInt(JOptionPane.showInputDialog("Yasinizi Girin"));
  16.
                        try{
  17.
                            Class.forName("com.mysql.jdbc.Driver");
  18.
                            baglanti = DriverManager.getConnection("jdbc:mysql://localhost/ethemsulan", "root",  "123");
  19.
                            PreparedStatement ifade=baglanti.prepareStatement("insert into uyekayiteclipse(uad,usoyad,uemail,uyas) values(?,?,?,?)");
  20.
                           
  21.
                            ifade.setString(1, username);
  22.
                            ifade.setString(2, soyad);
  23.
                            ifade.setString(3, email);
  24.
                            ifade.setInt(4, yas);
  25.
                           
  26.
                            ifade.execute();
  27.
                           
  28.
                        } catch (ClassNotFoundException e){
  29.
                            System.err.println("com.mysql.jdbc.Driver yuklenme hatasi");
  30.
                            } catch (SQLException e){
  31.
                                 e.printStackTrace();
  32.
                            } finally{
  33.
                            if (baglanti != null){
  34.
                            baglanti.close();
  35.
                            JOptionPane.showMessageDialog(null, "Islem Basarili");
  36.
                            }
  37.
                          }
  38.
              }
  39.
       
  40.
      }
Orjinal Kod:http://www.ethemsulan.com/2009/12/java-ile-mysql-veritabanna-baglanma.html
--Ethemsulan 23:41, 22 Aralık 2009 (UTC)
thread_title:  Fibonacci Sayı Dizisi(Java Examples) 

message: package www.ethemsulan.com;
import java.util.ArrayList;
public class ArrayListKul {
public static void main(String[] args) {
//String tipinde arraylist tanimlar  
ArrayList<String> alf=new ArrayList<String>();
String[] alfabe={"a","b","c","ç","d","e","f",
"g","ğ","h","ı","i","j","k","l","m","n","o",
"ö","p","r","s","ş","t","u","ü","v","y","z"};
//Dizi elemanlari arrayliste ekler    
for (int i = 0; i < alfabe.length; i++) {
  alf.add(alfabe[i]);
  }
int say=0;
//arraylisteki elemanlari buyuk harfe cevirip ekrana yaz
for (String k : alfabe) {
System.out.print(k.toUpperCase()+"\t");
  say+=1;
}
System.out.println();
//eger tip belirtmerzsek default olarak Object tipinde olur
ArrayList hrf=new ArrayList();
for (int i =say-1 ; i>=0 ; i--) {
hrf.add(alfabe[i].toUpperCase());
}
for (Object c : hrf) {
System.out.print(c+"\t");
  }
  }
}
Orjinal Kod:http://www.ethemsulan.com/2009/12/javada-arraylist-kullanm.html
ArrayList in javada kullanımı basitçe yukardaki gibidir. Alfabeyi önce büyük harfe çevirip yazıyor.Sonra tersten büüyk harfe çevirerek başka bir ArrayList e ekliyor.Eğer tipi belirtilmezse varsayılan tip Object tir.Yani bütün tipleri kapsar.
--Ethemsulan 23:05, 24 Aralık 2009 (UTC)
thread_title:  Javada ArrayList Kullanımı 

message: package www.ethemsulan.com;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
//form,label,button ve alan nasil tanimlanir 
//ve forma nasil eklendigini gosterilmis.
//buttonun tiklamasiyla hangi olay gerceklesecekse
//onu yaziyoruz.
public class OlayAlgilama {
	JFrame formum;
	JLabel label;
	JTextField alan;
	JButton button;
	public OlayAlgilama(){
		formum=new JFrame();
		formum.setBounds(500, 250, 500, 400);
		formum.getContentPane().setLayout(null);
		
		alan=new JTextField();
		alan.setBounds(10, 10, 100, 20);
		formum.add(alan);
		
		button=new JButton("Tikla");
		button.setBounds(10, 50, 70, 20);
		formum.add(button);
//button tiklaninca gerceklesecek olayi actionPerformed()
//metodu icine yaziyoruz.
		button.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				label.setText(alan.getText());
			}
		});
//addActionListener(); diger parantezi burada bitiyor
//bu kullanim javada yaygindir.Sadece bir bilesene ozgu olay yazilir
		label=new JLabel("Button tiklaninca girilen deger buraya yazilacak");
		label.setBounds(10, 100, 300, 30);
		formum.add(label);
		
		formum.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		formum.show();
	}
	public static void main(String[] args) {
//yapicinin icinde tanimladigimiz icin kodlarimizi
//bir nesne ureterek yapiciyi devreye sokmamiz gerekiyor.
		OlayAlgilama obj=new OlayAlgilama();
	}
}
Orj Kod:http://www.ethemsulan.com/2009/12/javada-actionlistener-ve.html
Mesela button üzerine gelip mousenin sol tuşu tiklandiğinda  gene yazi labele yazmak için de şu kod yazilir.Kisaca hangi bileşene hangi olayla ilşkilendirmek istiyorsak o bileşen ismi.olay çeşidi şeklinde kullanılır.
button.addMouseListener(new MouseAdapter(){
    public void mouseClicked(MouseEvent e){
        if(e.getButton()==1){
            label.setText(alan.getText());
        }
    }
});
Uygulamızda da
button.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent e){
        label.setText(alan.getText());
        }
    });
şeklinde tanımlanmış.Başka tanımlama şekilleri de var ama java da bu şekilde tanımlayarak kod karmaşıklığından kurutluruz.
ActionListener :Button a tıklanınca , TextField da enter a
basılınca gerçekleşecek olay algılayıcısıdır.
--Ethemsulan 23:12, 30 Aralık 2009 (UTC)
thread_title:  Java’da ActionListener ve actionPerformed() Nasıl Kullanılır(ActionListener and actionPerformed() Java Example)