// PROGRAM SPRINGUTILITIES.JAVA
*program ini berfungsi untuk mengotomasi ukuran lebar dan panjangnya suatu form dalam java AWT(abstract window toolskit). simpan satu folder dengan program cetak biodata, maka program tersebut dapat di kompilasi dan di jalankan.
import javax.swing.*;
import javax.swing.SpringLayout;
import java.awt.*;
/** Program ini menyediakan metoda-metoda pembantu
untuk program TextInputDemo
*/
public class SpringUtilities {
/** Utility yang akan menghasilkan ukuran-ukuran
minimum, yang diharapkan, serta maksimum.
*/
public static void printSizes(Component c) {
System.out.println("minimumSize = " + c.getMinimumSize());
System.out.println("preferredSize = " + c.getPreferredSize());
System.out.println("maximumSize = " + c.getMaximumSize());
}
/** Meratakan masing-masing komponen dalam
* grid sebagai lebar dan tinggi maksimum masing-masing komponen.
* Komponen induk dibuat sehingga dapat memuat semua komponen.
* initialX memulai lokasi grid di sumbu X
* initialY memulai lokasi grid di sumbu Y
* xPad merupakan jarak antarsel di sumbu X
* yPad merupakan jarak antarsel di sumbu Y
*/
public static void makeGrid(Container parent,
int rows, int cols,
int initialX, int initialY,
int xPad, int yPad) {
SpringLayout layout;
try {
layout = (SpringLayout)parent.getLayout();
} catch (ClassCastException exc) {
System.err.println
("The first argument to makeGrid must use SpringLayout.");
return;
}
Spring xPadSpring = Spring.constant(xPad);
Spring yPadSpring = Spring.constant(yPad);
Spring initialXSpring = Spring.constant(initialX);
Spring initialYSpring = Spring.constant(initialY);
int max = rows * cols;
// Melakukan perhitungan sehingga semua
// sel memiliki ukuran yang sama.
Spring maxWidthSpring =
layout.getConstraints(parent.getComponent(0)).
getWidth();
Spring maxHeightSpring =
layout.getConstraints(parent.getComponent(0)).
getWidth();
for (int i = 1; i < max; i++) {
SpringLayout.Constraints cons = layout.getConstraints(
parent.getComponent(i));
maxWidthSpring =
Spring.max(maxWidthSpring, cons.getWidth());
maxHeightSpring =
Spring.max(maxHeightSpring, cons.getHeight());
}
// Menerapkan ukuran Spring sehingga semua
// komponen akan memiliki ukuran yang sama.
for (int i = 0; i < max; i++) {
SpringLayout.Constraints cons = layout.getConstraints(
parent.getComponent(i));
cons.setWidth(maxWidthSpring);
cons.setHeight(maxHeightSpring);
}
// Mengatur batasan x/y sehingga semua sel rata dalam grid
SpringLayout.Constraints lastCons = null;
SpringLayout.Constraints lastRowCons = null;
for (int i = 0; i < max; i++) {
SpringLayout.Constraints cons =
layout.getConstraints(
parent.getComponent(i));
if (i % cols == 0) { //Mulai baris baru
lastRowCons = lastCons;
cons.setX(initialXSpring);
} else { //posisi x bergantung komponen sebelumnya
cons.setX(Spring.sum
(lastCons.getConstraint(SpringLayout.EAST),
xPadSpring));
}
if (i / cols == 0) { //first row
cons.setY(initialYSpring);
} else { // Posisi y bergantung pada bari sebelumnya
cons.setY(Spring.sum(lastRowCons.getConstraint
(SpringLayout.SOUTH),
yPadSpring));
}
lastCons = cons;
}
// Mengatur ukuran komponen induk.
SpringLayout.Constraints pCons = layout.getConstraints(parent);
pCons.setConstraint(SpringLayout.SOUTH,
Spring.sum(
Spring.constant(yPad),
lastCons.getConstraint(SpringLayout.SOUTH)));
pCons.setConstraint(SpringLayout.EAST,
Spring.sum(
Spring.constant(xPad),
lastCons.getConstraint(SpringLayout.EAST)));
}
/* Digunakan oleh makeCompactGrid. */
private static SpringLayout.Constraints getConstraintsForCell(
int row, int col,
Container parent,
int cols) {
SpringLayout layout = (SpringLayout) parent.getLayout();
Component c = parent.getComponent(row * cols + col);
return layout.getConstraints(c);
}
/** Meratakan komponen-komponen dalam grid.
* Komponen induk dibuat cukup untuk menampung semua
* rows merupakan parameter baris.
* cols merupakan parameter kolom.
* initialX menginisialisasi lokasi awal grid di sumbu X
* initialY menginisialisasi lokasi awal grid di sumbu Y
* xPad mengatur jarak x antarsel
* yPad mengatur jarak y antarsel
*/
public static void makeCompactGrid(Container parent,
int rows, int cols,
int initialX, int initialY,
int xPad, int yPad) {
SpringLayout layout;
try {
layout = (SpringLayout)parent.getLayout();
} catch (ClassCastException exc) {
System.err.println
("The first argument to makeCompactGrid must use SpringLayout.");
return;
}
// Meratakan semua sel dalam masing-masing kolom
// dan membuatnya berukuran lebar sama.
Spring x = Spring.constant(initialX);
for (int c = 0; c < cols; c++) {
Spring width = Spring.constant(0);
for (int r = 0; r < rows; r++) {
width = Spring.max(width,
getConstraintsForCell(r, c, parent, cols).
getWidth());
}
for (int r = 0; r < rows; r++) {
SpringLayout.Constraints constraints =
getConstraintsForCell(r, c, parent, cols);
constraints.setX(x);
constraints.setWidth(width);
}
x = Spring.sum(x, Spring.sum(width, Spring.constant(xPad)));
}
// Meratakan semua sel dalam masing-masing baris
// dan membuatnya berukuran tinggi sama.
Spring y = Spring.constant(initialY);
for (int r = 0; r < rows; r++) {
Spring height = Spring.constant(0);
for (int c = 0; c < cols; c++) {
height = Spring.max(height,
getConstraintsForCell(r, c, parent, cols).
getHeight());
}
for (int c = 0; c < cols; c++) {
SpringLayout.Constraints constraints =
getConstraintsForCell(r, c, parent, cols);
constraints.setY(y);
constraints.setHeight(height);
}
y = Spring.sum
(y, Spring.sum(height, Spring.constant(yPad)));
}
// Mengatur ukuran komponen induk.
SpringLayout.Constraints pCons = layout.getConstraints(parent);
pCons.setConstraint(SpringLayout.SOUTH, y);
pCons.setConstraint(SpringLayout.EAST, x);
}
}
Tidak ada komentar:
Posting Komentar