30 Ocak 2017 Pazartesi

IntBuffer Sınıfı

get metodu
Şöyle yaparız.
IntBuffer integers = ...
int[] array = new int[n];
integers.get(array);

25 Ocak 2017 Çarşamba

Gson JsonObject Sınıfı

Giriş
Şu satırı dahil ederiz.
import com.google.gson.JsonObject;
get metodu
JsonElement döner. Şöyle yaparız.
JsonObject obj = gson.fromJson("{    id:12345,    active:1}", JsonObject.class);
JsonPrimitive prim = obj.get("active").getAsJsonPrimitive();

23 Ocak 2017 Pazartesi

WritableRaster Sınıfı

Giriş 
Raster arayüzünden kalıtır. Pixelleri yazabilme imkanı tanır.

setDataElements metodu 
Örnek ver

21 Ocak 2017 Cumartesi

Gson JsonPrimitive Sınıfı

isBoolean metodu
Şöyle yaparız.
JsonObject obj = gson.fromJson("{    id:12345,    active:1}", JsonObject.class);
JsonPrimitive prim = obj.get("active").getAsJsonPrimitive();
if(prim.isBoolean()){
  System.out.println("boolean");
}else{
  System.out.println("number");
}

15 Ocak 2017 Pazar

JavaFX Application Sınıfı - Kalıtmamız Gereken Sınıf

Giriş
Şu satırı dahil ederiz.
import javafx.application.Application;
Maven
JavaFX  JDK 11'den sonra kendi başına modül olduğu için şu satırı dahil ederiz
<dependency>
  <groupId>org.openjfx</groupId>
  <artifactId>javafx-controls</artifactId>
  <version>11</version>
</dependency>
Projenin ismi artık OpenJFX oldu. Bir açıklama şöyle
OpenJFX is being developed and utilized. It is going to be updated and enhanced, even if it is not a part of the main OpenJDK repository. 
Açıklaması şöyle. Bu sınıfın karşılığı Swing'te yok
JavaFX started as a scripting language named JavaFX script. Sun Microsystems intended to use it to compete with Adobe Flex (now Apache Flex) and Microsoft Silverlight to a lesser extent.

In 2010, at Java One, Oracle, which had bought Sun in the meantime, announced that it would stop the development of the language while keeping the API. With Java 8, released in 2014, JavaFX became the official successor of the Swing API: the latter just has just received bug fixes since then.

Compared to Swing, JavaFX adds an application abstraction.
Açıklaması şöyle. FXMLoader sınıfı yazısına bakabilirsiniz
... you can create a JavaFX user-interface by taking two different approaches:
1. Define all objects in pure Java code.
2. Use XML-based layout files (FXML) that integrate with Java code.
Şeklen şöyle


getHostServices metodu
Şöyle yaparız.
getHostServices().showDocument(getClass().
  getResource("computer_graphics_tutorial.pdf").toString());
launch metodu
Örnek
Şöyle yaparız.
public static void main(String[] args) {
  launch(args);
}
start metodu
Parametre olarak Stage nesnesi alır. Bir Scene gösterir.  Şöyle yaparız.
public class MyApp extends Application {

  @Override
  public void start(Stage primaryStage) {
    ...
    primaryStage.setScene(new Scene(area));
    primaryStage.show();
  }
  ...
}
Şöyle yaparız.
@Override
public void start(final Stage primaryStage) {
  ...

  Scene scene = new Scene(...,...,...);

  primaryStage.setScene(scene);
  primaryStage.show();
}

14 Ocak 2017 Cumartesi

Certificate Arayüzü

Giriş
Şu satırı dahil ederiz.
import java.security.cert.Certificate;
constructor
Şöyle yaparız.
Certificate cer = ks.getCertificate("alias_name");

11 Ocak 2017 Çarşamba

ZipEntry Sınıfı

getDate metodu
Şöyle yaparız.
ZipEntry entry = ...;
System.out.printf("Modified on %TD %n", new Date(entry.getTime()));
getName metodu
Şöyle yaparız.
ZipEntry entry = ...;
System.out.printf("File: %s ", entry.getName());
getSize metodu
Şöyle yaparız.
ZipEntry entry = ...;
System.out.printf("Size %d", entry.getSize());
isDirectory metodu
Girdinin dizin olup olmadığını belirtir. Şöyle yaparız.
ZipEntry entry = ...;
if (!entry.isDirectory()) {...}
Eğer açma işleminde dizini yaratmak için şöyle yaparız.
if (entry.isDirectory())
{
  File fmd = new File(path + zipEntry.getName ());
  fmd.mkdirs();
  continue;
}
read metodu
Şöyle yaparız
byte[] buffer = new byte[1024];
// unzip the file
FileOutputStream out = ...;
BufferedOutputStream fout = new BufferedOutputStream(out, 1024);

while ((size = zin.read(buffer, 0, 1024)) != -1) {
  fout.write(buffer, 0, size);
}
fout.flush();
fout.close();

DataBufferByte Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.awt.image.DataBufferByte;
getData metodu
Şöyle yaparız.
BufferedImage image=...;
byte[] data =((DataBufferByte) image.getRaster().getDataBuffer()).getData();


10 Ocak 2017 Salı

Deflater Sınıfı - Veriyi Sıkıştırır

Giriş
Şu satırı dahil ederiz.
import java.util.zip.Deflater;
Sıkıştırılmış veriyi açmak için Inflater Sınıfını kullanırız.

Kullanım
Örnek
Sıkıştırma (compress) için şöyle yaparız. Burada end() metodu çağrılmıyor ama çağrılmalı
Deflater deflater = new Deflater();
deflater.setInput(data);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(data.length);
deflater.finish();
byte[] buffer = new byte[1024];
while (!deflater.finished()) {
  int count = deflater.deflate(buffer);
  outputStream.write(buffer, 0, count);
}
outputStream.close();
byte[] output = outputStream.toByteArray();
Örnek
Şöyle yaparız. Burada end() metodu çağrılıyor ama ByteArrayOutputStream.close() çağrılmıyor
public static byte[] compress(byte[] input) {
  if (input.length == 0) {
    return new byte[0];
  }
  int len = Math.max(input.length / 10, 10);

  Deflater compressor = new Deflater();
  compressor.setLevel(Deflater.BEST_SPEED);
  compressor.setInput(input);
  compressor.finish();
  ByteArrayOutputStream bos = new ByteArrayOutputStream(len);
  byte[] buf = new byte[len];
  while (!compressor.finished()) {
    int count = compressor.deflate(buf);
    bos.write(buf, 0, count);
  }
  compressor.end();
  return bos.toByteArray();
}
constructor
Şöyle yaparız.
int level = Deflater.DEFAULT_COMPRESSION;
Deflater deflater = new Deflater (level);
deflate metodu
Şöyle yaparız.
//Buffer for compressed data to be written
byte[] outBuf = ...;
int size = deflater.deflate(outBuf);
finished metodu
Şöyle yaparız.
ByteArrayOutputStream bos = new ByteArrayOutputStream(...);

byte[] buffer = new byte[1024];
while (!deflater.finished()) {

  int bytesCompressed = deflater.deflate(buffer);
  bos.write(buffer, 0, bytesCompressed);
}
finish metodu
setInputBytes çağrısından sonra yapılır. Tüm sıkıştırılacak verinin verildiğini belirtir. Şöyle yaparız.
deflater.finish();
reset metodu
Şöyle yaparız.
deflater.reset();
setInput metodu - byte []
Şöyle yaparız
byte[] bytes = ...;
deflater.setInput (bytes);
setInput metodu - byte [] + position + len
Şöyle yaparız.
//Buffer for input data
byte[] inBuf = ...;

//Number of bytes in the buffer
int len = ...;

deflater.setInput (inBuf, 0, len);
setStrategy metodu
Şöyle yaparız.
int strategy = Deflater.DEFAULT_STRATEGY;
deflater.setStrategy(strategy);