Olga Grabek

Olga Grabek Senior Software
Engineer

Temat: Proporcjonalna zmiana rozmiarów JFrame

Piszę program do rysowania wykresów w układzie współrzędnych. Początkowe rozmiary ramki to 208 na 234. W jaki sposób można "zmusić" ramkę do tego by rozszerzała się proporcjonalnie?
Irek Słonina

Irek Słonina programowanie, bazy
danych i linuksy

Temat: Proporcjonalna zmiana rozmiarów JFrame

Na początek może wystarczy.



import java.awt.Cursor;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;


public class Test extends javax.swing.JFrame {
private int EDGE_SIZE = 15;

/** Creates new form NewJFrame */
public Test() {
setResizable(false);
setSize(200,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);

addMouseMotionListener(new MouseMotionListener() {

public void mouseDragged(MouseEvent e) {
int size = Math.max(e.getX(), e.getY());
setSize(size, size);

}

public void mouseMoved(MouseEvent e) {
if (closeToEdge(e.getPoint())) {
setCursor(Cursor.SE_RESIZE_CURSOR);
} else {
setCursor(Cursor.DEFAULT_CURSOR);
}
}
});

setVisible(true);
}

private boolean closeToEdge(Point point) {
if (Math.abs(point.getX() - getWidth()) < EDGE_SIZE || Math.abs(point.getY() - getHeight()) < EDGE_SIZE) {
return true;
}
return false;
}

public static void main(String[] main) {
new Test();
}
}

Łukasz Anwajler

Łukasz Anwajler Mobile & Web
Developer

Temat: Proporcjonalna zmiana rozmiarów JFrame

To chyba powinno wystarczyc:


Dimension ps = f.getPreferredSize(); // preferred size
Dimension cs = f.getSize(); // current size

if ((ps.height != cs.height) || (ps.width != cs.width)) {
f.setMinimumSize(ps);
validate();
}


No i do tego ustawić sobie proporcje.Łukasz Anwajler edytował(a) ten post dnia 11.06.09 o godzinie 19:49
Olga Grabek

Olga Grabek Senior Software
Engineer

Temat: Proporcjonalna zmiana rozmiarów JFrame

Dzięki za podpowiedź. Jednak zdecydowałam się na przeskalowywanie wykresu, ale znajomość tego jak proporcjonalnie rozszerzać ramkę na pewno się przyda :)

Następna dyskusja:

Zmiana czasu




Wyślij zaproszenie do