19 Aralık 2017 Salı

Swing JPanel Sınıfı

Giriş
Şu satırı dahil ederiz.
import javax.swing.JPanel;
Panel'e de önce layout atanır. Sonra görünmesi isteniyorsa border atanır.

JPanel ana pencereye (JFrame) eklenir. Şöyle yaparız.
frame.add (panel);
Şeklen şöyledir

constructor - default
Şöyle yaparız.
JPanel panel = new JPanel();
constructor - layout
Şöyle yaparız.
JPanel panel = new JPanel (new FlowLayout());
Şöyle yaparız
JPanel panel = new JPanel(new GridBagLayout());
add metodu
Şöyle yaparız.
JScrollPane scroll = ...;
panel.add (scroll);
Şöyle yaparız.
JTextField textField = ...;
jp.add (textField);
Şöyle yaparız.
p.add( new Object(){
  <T extends AbstractButton>
  T f(T x){
    x.setEnabled(false);
    return x;
  }}.f(new JButton("B")) );
getPreferredSize metodu
Şöyle yaparız
@Override
public Dimension getPreferredSize() {
  return new Dimension(200, 200);
}
paintComponent metodu
repaint() ile tetiklenebilir.
Örnek
Şöyle yaparız.
@Override
protected void paintComponent(Graphics g) {
  super.paintComponent(g);
  ...
}
Örnek
Şöyle yaparız.
protected void paintComponent(Graphics g) {
  super.paintComponent(g);
  Graphics2D g2d = (Graphics2D) g.create();
  g2d.drawString("Hello World", 80, 80);
  g2d.drawLine(x1, 60, x2, 150);
  g2d.drawRect(100, 40, 30, 30);
  g2d.dispose();
}
removeAll metodu
Şöyle yaparız.
panel.removeAll();
setAlignmentY metodu
Şöyle yaparız.
panel.setAlignmentY(TOP_ALIGNMENT);
setBorder metodu
BorderFactory sınıfı ile border yaratılır.
Örnek
Etrafı mavi çizili bir panel için şöyle yaparız.
panel.setBorder(BorderFactory.createLineBorder(Color.BLUE));
Örnek
Panel'in içindekiler ile panel arasında boşluk bırakmak için şöyle yaparız.
panel.setBorder(BorderFactory.createEmptyBorder(20, 0, 0, 0));
createTitleBorder ile metin gösteren bir panel elde ederiz.

setLayout metodu
Örnek
Şöyle yaparız.
panel.setLayout(null);
Örnek
Şöyle yaparız.
panel.setLayout(new BoxLayout(panel, BoxLayout.LINE_AXIS));
Örnek - row + col
15 sütun ve 30 satırlı ızgara yerleşim için şöyle yaparız.
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(30, 15));
for (int row = 0; row < 30; row++) {
  for (int col = 0; col < 15; col++) {
    panel.add(new Button("Button" + row + "/" + col));
  }
}
setVisible metodu
Şöyle yaparız.
panel.setVisible(false);

Hiç yorum yok:

Yorum Gönder