29 Ekim 2016 Cumartesi

JList Sınıfı

Giriş
Şu satırı dahil ederiz.
import javax.swing.JList;
Liste şeklindeki ekran bileşenidir. Ekranda göstermek için şöyle yaparız.
JList list = ...;
JScrollPane scroll = new JScrollPane (list);
constructor - default
Şöyle yaparız.
JList<String> list = new JList<String>();  
constructor - DefaultListModel
Şöyle yaparız.
DefaultListModel model = new DefaultListModel<String>();
JListString> list = new JList<String>(model);
addListSelectionListener metodu
Şu satırları dahil ederiz.
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
Şöyle yaparız.
list.addListSelectionListener (new ListSelectionListener() {
  public void valueChanged(ListSelectionEvent arg0) { 
    System.out.println("You selected " + list.getSelectedValue());
  }
});
setModel metodu
Şöyle yaparız.
DefaultListModel model = ...;
list.setModel(model);
setPreferredSize metodu
Şöyle yaparız.
list.setPreferredSize (null);



EventQueue Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.awt.EventQueue;
invokeLater metodu
Şöyle yaparız.
EventQueue.invokeLater(new Runnable() {
  public void run() {
  ...
  }
});


27 Ekim 2016 Perşembe

LinkedList Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.util.LinkedList;
Sınıf List arayüzünü gerçekleştirir.
import java.util.List;
Bu sınıf ArrayList'e göre daha az kullanılıyor.

constructor
Şöyle yaparız.
LinkedList<Foo>list = new LinkedList<Foo>();
Şöyle yaparız.
Queue<Foo> lits = new LinkedList<Foo>() ;
add metodu
Açıklaması şöyle
public void add(int index, E element)
Inserts the specified element at the specified position in this list. Shifts the element currently at that position (if any) and any subsequent elements to the right (adds one to their indices).
Şöyle yaparız.
list.add (10,foo);
isEmpty metodu
Şöyle yaparız.
if (!list.isEmpty () ){...}
remove metodu
İlk elemanı siler ve döndürür. Şöyle yaparız.
Foo f = list.remove();



Condition Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.util.concurrent.locks.Condition;
constructor
Şöyle yaparız.
Lock lock = new ReentrantLock();
Condition condition  = lock.newCondition();
await metodu
Şöyle yaparız.
condition.await();
signal metodu
Açıklaması şöyle. Niçin may kelimesi kullanılmış bilmiyorum.
An implementation may (and typically does) require that the current thread hold the lock associated with this Condition when this method is called.
Bekleyen tek bir thread'i uyandırır. Şöyle yaparız.
condition.signal();
signalAll metodu
Bekleyen tüm thread'leri uyandırır.
condition.signalAll();
Klasik kullanımı şöyledir.
1. Lock kilitlenir
2. Condition sinyallenir
3. Lock bırakılır
@Override
public void foo (){

  lock.lock();
  try{
    ...
    condition.signalAll();
  } finally{
    lock.unlock();
  }
}


26 Ekim 2016 Çarşamba

Jsoup Sınıfı

text metodu
Html tag'lerini ayıklar. Şöyle yaparız.
String htmlString = "<div class=\"WordSection1\"> <p class=\"MsoNormal\">Hi<br> 
<br> <br> <br> Data is written in this mail.<br> <br> <br> 
<br> <o:p></o:p></p> </div>";

System.out.println(Jsoup.parse(htmlString).text());
Çıktı olarak şunu alırız
Hi Data is written in this mail.

E-posta için Folder Sınıfı

constructor
Şöyle yaparız.
Store store = ...;
Folder inbox = store.getFolder ("Inbox");
open metodu
Şöyle yaparız.
inbox.open (Folder.READ_ONLY);
search metodu
Şöyle yaparız.
javax.mail.Message messages[]= inbox.
  search (new FlagTerm( new Flags (Flag.SEEN), false));
Mesajları dolaşmak için şöyle yaparız.
for(Message message:messages) {
  ...
}





E-posta için Store Sınıfı

constructor
Şöyle yaparız.
Properties props = System.getProperties();
props.setProperty("mail.store.protocol", "imaps");

Session session = Session.getDefaultInstance(props, null);
Store store = session.getStore("imaps");
connect metodu
Şöyle yaparız.
store.connect ("hostname", "username", "password");
getFolder metodu
Folder nesnesi döner. Şöyle yaparız.
Folder inbox = store.getFolder ("Inbox");

FileDialog Sınıfı

Giriş
Swing'teki karşılığı JFileChooser sınıfı.

constructor
Şöyle yaparız.
FileDialog dialog = new FileDialog ((Frame)null, "Select File to Open");
getFile metodu
Şöyle yaparız.
String file = dialog.getFile();
setMode metodu
Şöyle yaparız.
dialog.setMode (FileDialog.LOAD);
setVisible metodu
Şöyle yaparız.
dialog.setVisible(true);




24 Ekim 2016 Pazartesi

JAX-RS Response Sınıfı

Giriş
Şu satırı dahil ederiz.
import javax.ws.rs.core.Response;
build metodu
Şöyle yaparız.
Response r = r.build ();
entity metodu
Şöyle yaparız.
String data= "...";
Response r = r.entity (data);
Şöyle yaparız.
return Response.status(200).entity("OK").build();
status metodu
Şöyle yaparız.
Response r = Response.status (200);

BigDecimal Sınıfı

Constructor - double
BigDecimal double'a çevrilirse hatalı sonuç gösterir.
public class Test {
  public static void main(String[] args){
    System.out.println(new BigDecimal(58.34));
  }
}
Bu kod çıktı olarak 58.340000000000003410605131648480892181396484375 sayısını verir.
Çünkü 58.34 sayısı double ile tam temsil edilemez. Bu metod yerine BigDecimal.valueOf() kullanılması öneriliyor.
BigDecimal.valueOf (0.015)
Hatta dokümantasyonda şöyle yazıyor.
This is generally the preferred way to convert a double (or float) into a BigDecimal.
valueOf alt tarafta şuna benzer bir şekilde çalışıyor. Yani verilen double sayısı string'e çevriliyor. String'e çevrimde "shortest decimal representation" seçildiği için 0.015 aslında double ile tam temsil edilemese bile string'e çevrimde 0.015 çıktığı için doğru BigDecimal değeri elde ediyoruz.
new BigDecimal (Double.toString(0.015))
Constructor - String
BigDecimal mümkünse string ile yaratılmalıdır. Aşağıdaki kod çıktı olarak 58.34 sayısını verir.
System.out.println (new BigDecimal ("58.34"));
String exponent olarak ta verilebilir.
BigDecimal bd = new BigDecimal ("1.00E-7"); 
compareTo metodu
İki BigDecimal nesnesini karşılaştırır.
BigDecimal bd = new BigDecimal("12");
bd.compareTo (new BigDecimal(0));  //Returns 1
Şu şekilde bir sürü yardımcı metod kullanılabilir.
public class BigDecimalUtil {

  public static boolean isZero(BigDecimal value) {
    return value == null?false:value.compareTo(BigDecimal.ZERO) == 0;
  }   

  public static boolean isPositive(BigDecimal value) {
    return value == null?false:value.compareTo(BigDecimal.ZERO) > 0;
  }

  public static boolean isNegative(BigDecimal value) {
    return value == null?false:value.compareTo(BigDecimal.ZERO) < 0;
  }

  public static boolean isEqual(BigDecimal value1, BigDecimal value2) {
    return value1.compareTo(value2) == 0;
  }

  public static boolean isLessThan(BigDecimal value1, BigDecimal value2) {
    return value1.compareTo(value2) < 0;
  }

  public static boolean isMoreThan(BigDecimal value1, BigDecimal value2) {
    return value1.compareTo(value2) > 0;
  }
}
divide metodu
Şöyle yaparız
BigDecimal x = new BigDecimal("4.8");
BigDecimal y = new BigDecimal("7.11");
BigDecimal z = x.divide(y, 0, RoundingMode.HALF_UP);
doubleValue metodu
Şöyle yaparız.
double myDouble = bd.doubleValue();
floatValue metodu
Şöyle yaparız.
float myFloat = bd.floatValue();
intValue metodu
Şöyle yaparız.
int myInt = bd.intValue();
precision metodu
Açıklaması şöyle. Kaç tane hane olduğunu döndürür.
The precision is the number of digits in the unscaled value. The precision of a zero value is 1.
Şöyle yaparız.
scala> new java.math.BigDecimal("500").precision()
res0: Int = 3
Şöyle yaparız.
if(bd.precision() <= 3) {...}
setScale metodu
Belirtilen küsürat sayısını kullanan yeni bir nesne döner. Round metoduna benzer.
BigDecimal bd = new BigDecimal ("1.01234");
System.out.println (bd.setScale(2, RoundingMode.HALF_UP));//Sonuç 1.01
stripTrailingZeros
Sondaki sıfırları atar.
new BigDecimal("1.2300").stripTrailingZeros() 
Sonuç olarak şunu alırız.
1.23
toBigInteger metodu
BigInteger nesnesine çevirir. Şöyle yaparız.
bd.toBigInteger();
toPlainString
Açıklaması şöyle
toPlainString() - Returns a string representation of this BigDecimal without an exponent field.
Nesneyi stringe çevirir.
BigDecimal bd = ...;
bd.toPlainString();
Şöyle yaparız.
BigDecimal bd = new BigDecimal("1.00E-7"); 
System.out.println(bd.toPlainString());
Çıktı olarak şunu alırız.
"0.0000001"