31 Ocak 2017 Salı

JLabel Sınıfı

Giriş
Şu satırı dahil ederiz.
import javax.swing.JLabel;
constructor
Şöyle yaparız.
Jlabel label = new JLabel ("..."); 
setBounds metodu
Şöyle yaparız.
label.setBounds (23, 90, 61, 45);
setBackground metodu
Arka plan rengini verir. Şöyle yaparız.
label.setBackground (Color.BLUE);
setForeground metodu
Metin rengini verir. Şöyle yaparız.
label.setForeground (Color.LIGHT_GREEN);
setIcon metodu
Şöyle yaparız.
ImageIcon icon=...;
label.setIcon (icon);
setOpaque metodu
Şöyle yaparız.
labe.setOpaque (true); //so you can see the background color

ImageIcon Sınıfı

Giriş
Şu satırı dahil ederiz.
import javax.swing.ImageIcon;
Bu sınıf bir ekran bileşenine resim yüklemek için kullanılır. Şöyle yaparız.
ImageIcon icon=...;
JLabel lbl=new JLabel();
lbl.setIcon(icon);
constructor
Şöyle yaparız.
String filename = "ouput.png";
ImageIcon icon=new ImageIcon(filename);

Class Sınıfı

constructor
Şöyle yaparız.
Class<?> c = Class.forName("...");
Şöyle yaparız.
Class<Foo> c = Foo.class;
forName metodu
Paket + Sınıf İsmi verilir. Şöyle yaparız.
Class<?> c = Class.forName("...");
getConstructor metodu
Açıklaması şöyle
Returns a Constructor object that reflects the specified public constructor of the class represented by this Class object. The parameterTypes parameter is an array of Class objects that identify the constructor's formal parameter types, in declared order. If this Class object represents an inner class declared in a non-static context, the formal parameter types include the explicit enclosing instance as the first parameter.
Şöyle yaparız.
Class<MyClass> c;
// ... 
Constructor<MyClass> constructor = c.getConstructor(String.class);
MyClass instance = constructor.newInstance("...");
getDeclaredClasses metodu
Inner sınıfları verir. Şöyle yaparız.
Class<MyClass> c;
Class[] innerClass = c.getDeclaredClasses();
getDeclaredConstructor metodu
Parametre almayan constructor için şöyle yaparız.
Class<MyClass> c;
Constructor constructor = c.getDeclaredConstructor();
Tek parametre alan constructor için şöyle yaparız.
Constructor constructor = c.getDeclaredConstructor(String.class);
Çok parametreli constructor için şöyle yaparız.
Class[] cArg = new Class[3]; //Our constructor has 3 arguments
cArg[0] = Long.class; //First argument is of *object* type Long
cArg[1] = String.class; //Second argument is of *object* type String
cArg[2] = int.class; //Third argument is of *primitive* type int


Constructor constructor = c.getDeclaredConstructor(cArg);
getDeclaredConstructors metodu
Tüm constructor'ları verir. Şöyle yaparız.
Class<MyClass> c;
Constructor constructor = c.getDeclaredConstructors()[0];
getDeclaredFields metodu
Açıklaması şöyle. Sınıf tarafından tanımlanmış, kalıtımla gelmeye alanları verir.
Returns an array of Field objects reflecting all the fields declared by the class or interface represented by this Class object. This includes public, protected, default (package) access, and private fields, but excludes inherited fields. The elements in the array returned are not sorted and are not in any particular order. This method returns an array of length 0 if the class or interface declares no fields, or if this Class object represents a primitive type, an array class, or void.
Şöyle yaparız.
// Get all the field of the class
Field[] fields = Foo.class.getDeclaredFields();
getDeclaredMethods metodu
Method Sınıfı yazısına taşıdım.

getDeclaredMethod metodu
Method Sınıfı yazısına taşıdım.

getSimpleName metodu
Sadece sınıfın ismini verir. Şöyle yaparız. Çıktı olarak örneğin "Foo" alırız.
c.getSimpleName()
getSuperClass metodu
Sınıfın atasını döner.
Class c =...;
c = c.getSuperclass();
isAnonymous metodu
Sınıfın anonim olup olmadığını döner.
Class c = ...;
if c.isAnonymousClass()) {...}
isAssignableFrom metodu
İlk nesnenin parametre olarak verilen nesnenin atası olup olmadığını döner. Örneğin Comparable arayüzü String sınıfının atasıdır.
Comparable.class.isAssignableFrom (String.class)
isEnum metodu
Sınıfın enum olup olmadığını döner.
Class c = ...;
if c.isEnum() {...}
isInstance metodu
Şöyle yaparız.
Class<?> c = ...;
Object obj = ...;
if (c.isInstance(obj)) {...}
getResource metodu
Açıklaması şöyle
This method delegates the call to its class loader, after making these changes to the resource name: if the resource name starts with "/", it is unchanged; otherwise, the package name is prepended to the resource name after converting "." to "/". If this object was loaded by the bootstrap loader, the call is delegated to ClassLoader.getSystemResource.
path relative ise sınıfın paketinden itibaren arama yapılı.Şu iki kod aynı kapıya çıkar.
foo.bar.Baz.class.getResource("xyz.txt");
foo.bar.Baz.class.getClassLoader().getResource("foo/bar/xyz.txt");
path absolute ise belirtilen yerdeki kaynak için URL döndürülür. Şu iki kod aynı kapıya çıkar.
foo.bar.Baz.class.getResource("/data/xyz.txt");
foo.bar.Baz.class.getClassLoader().getResource("data/xyz.txt");
Döndürülen URL null olabilir. Şöyle yaparız.
String path = ...;
java.net.URL url = getClass().getResource(path);
if (url != null) {
...
}
Spring ile bu metodun işlevini yapmak daha kolay. Şöyle bir dizin yapısı olsun. src/main/config classpath içinde olsun.
--src
  --> main
   --> config (*)
    --> app
     --> context
      --> reference
       --> user
        --> user.xml
Şöyle yaparız.
Resource r = new ClassPathResource("/app/context/references/user/user.xml");
File file = r.getFile();
getResourceAsStream metodu
Proje'de src/resources/Dates.xlsx dosyası olsun. Proje jar yapısına çevrildikten sonra öyle yaparız.
clazz.getResourceAsStream("resources/Dates.xlsx");
newInstance metodu
Sınıfın default constructor metodunun olması gerekir yoksa
java.lang.InstantiationException: 
alırız. Açıklaması şöyle.
InstantiationException - if this Class represents an abstract class, an interface, an array class, a primitive type, or void; or if the class has no nullary constructor; or if the instantiation fails for some other reason.
Şöyle yaparız.
MyClass foo = (MyClass)c.newInstance();
Eğer sınıfın default constructor metodu yoksa getConstructor(..) çağrısı ile bir constructor metodu bulunur sınıf yaratılabilir.
Ya da getDeclaredConsructor() çağrısı ile şöyle yaparız.
clazz.getDeclaredConstructor (String.class).newInstance("...");


ObjectOutputStream Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.io.ObjectOutputStream;
Aynı nesneyi değiştirerek yazmak işe yaramaz. Açıklaması şöyle
The serialization protocol preserves object identity.

If you repeatedly write the same object, it will not be serialized with its contents again, the stream will just include a backreference to indicate that you wrote the same object another time.
constructor
Bir OutputStream alır. Şöyle yaparız.
FileOutputStream fileOut = new FileOutputStream("C:\\out.dat");
ObjectOutput out = new ObjectOutputStream(fileOut);
Bazen ObjectOutputStream yerine ObjectOut arayüzü kullanılır. Şöyle yaparız.
ObjectOutput out = new ObjectOutputStream(...);
close metodu
Tüm stream'lerde olduğu gibi işimiz bitince nesnenin kapatılması gerekir.Şöyle yaparız.
out.close(); 
flush metodu
Şöyle yaparız.
out.flush();
writeInt metodu
Şöyle yaparız.
out.writeInt(3);
writeObject metodu
Şöyle yaparız. Exception'ları dikkate almadım
out.writeObject(myObject);
Şöyle yaparız.
String str = ...;
out.writeObject(str);