26 Nisan 2018 Perşembe

DatagramPacket Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.net.DatagramPacket;
Datagram'ın açıklaması şöyle. Datagram frame ve packet'ten farklı anlama geldiği için sınıfın işlevine tam olarak uyuyor.
A self-contained, independent entity of data carrying sufficient information to be routed from the source to the destination computer without reliance on earlier exchanges between this source and destination computer and the transporting network.
constructor - data
Veri okumak için kullanılır. Şöyle yaparız.
byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
constructor - data + ip + port
Veri göndermek için kullanılır. 
Örnek
Şöyle yaparız.
DatagramPacket packet = new DatagramPacket(buf,buf.length,
                   InetAddress.getByName("192.168.1.5"), 4567);
Örnek
Şöyle yaparız.
public String message = ...;
InetAddress group = InetAddress.getByName("228.5.6.7");
DatagramPacket hi = new DatagramPacket(message.getBytes(), message.length(),
  group, 6789);
getAddress metodu
Okuma işleminden sonra paketin hangi adresten geldiğini bulmak için şöyle yaparız.
DatagramPacket packet =...
udpSocket.receive(receivePacket);

InetAddress ipAddress = packet.getAddress();
int port = packet.getPort();
getData metodu
Okunan veriyi döner. Şöyle yaparız.
DatagramPacket packet = new DatagramPacket(buf, buf.length);   
udpSocket.receive(packet); 
new String(packet.getData(), 0, packet.getLength())); 
Şöyle de yapabiliriz.
new String(packet.getData());
getLength metodu
Okuma işleminden sonra ne kadar veri okunduğunu belirtir.
receivePacket.getLength()
getPort metodu
Okuma işleminden sonra paketin hangi porttan geldiğini bulmak için şöyle yaparız.
DatagramPacket packet =...
udpSocket.receive(receivePacket);

InetAddress ipAddress = packet.getAddress();
int port = packet.getPort();

setLength metodu
Okuma işleminden sonra nesnenin okuyabileceği veri büyüklüğünü tekrar atamak gerekir. Şöyle yaparız.
byte[] b = new byte[BUFFER_LENGTH];
DatagramPacket dgram = new DatagramPacket(b, b.length);

while(true) {
  socket.receive(dgram); // blocks until a datagram is received
  System.err.println("Received " + dgram.getLength() +
    " bytes from " + dgram.getAddress());
  dgram.setLength(b.length); // must reset length field!
}


25 Nisan 2018 Çarşamba

Swing GrayFilter Sınıfı

createDisabledImage metodu
Örnek ver

Swing DefaultTreeModel Sınıfı

Giriş
Şu satırı dahil ederiz.
import javax.swing.tree.DefaultTreeModel;
JTree ile birlikte kullanılır.

addTreeModelListener metodu
İmzası şöyle.
public void addTreeModelListener(TreeModelListener l);
getChild metodu
İmzası şöyle.
public Object getChild(Object parent, int index) {
getChildCount metodu
İmzası şöyle.
public int getChildCount(Object parent);
getIndexOfChild metodu
İmzası şöyle.
public int getIndexOfChild(Object parent, Object child);
getRoot metodu
İmzası şöyle.
public Object getRoot();
Şöyle yaparız.
DefaultTreeModel model = (DefaultTreeModel)tree.getModel();
DefaultMutableTreeNode root = (DefaultMutableTreeNode)model.getRoot();
root.add(addNodes(null, file));
model.reload(root);
isLeaf metodu
İmzası şöyle.
public boolean isLeaf(Object node);
removeTreeModelListener metodu
İmzası şöyle.
public void removeTreeModelListener(TreeModelListener l);
valueForPathChanged metodu
İmzası şöyle.
public void valueForPathChanged(TreePath path, Object newvalue);
Diğer
Dosya sistemi için şöyle yaparız.
class FileTreeModel implements TreeModel {
  protected File root;
  public FileTreeModel(File root) { this.root = root; }

  public Object getRoot() { return root; }

  public boolean isLeaf(Object node) {  return ((File)node).isFile(); }

  public int getChildCount(Object parent) {
    String[] children = ((File)parent).list();
    if (children == null) return 0;
    return children.length;
  }

  public Object getChild(Object parent, int index) {
    String[] children = ((File)parent).list();
    if ((children == null) || (index >= children.length)) return null;
    return new File((File) parent, children[index]);
  }

  public int getIndexOfChild(Object parent, Object child) {
    String[] children = ((File)parent).list();
    if (children == null) return -1;
    String childname = ((File)child).getName();
    for(int i = 0; i < children.length; i++) {
      if (childname.equals(children[i])) return i;
    }
    return -1;
  }

  public void valueForPathChanged(TreePath path, Object newvalue) {}
  public void addTreeModelListener(TreeModelListener l) {}
  public void removeTreeModelListener(TreeModelListener l) {}
}