Professional Documents
Culture Documents
Grafičko Programiranje
Grafičko Programiranje
• Paket javax.swing uveden je u Javu u verziji 1.2 s idejom da ispravi nedostatke AWT-a. Swing koristi tek
minimalno grafičke rutine platforme na kojoj se program izvršava i stoga daje programskom sučelju
konsistentan izgled na različitim platformama. Pored tog Swing ima znatno bogatiji izbor grafičkih
komponenti i danas je Java-in standardni paket za kreiranje korisničkog sučelja. Ipak, Swing nije potpuna
zamjena za AWT i oba se paketa često koriste zajedno.
import javax.swing.*;
Kreiranje prozora public class SimpleFrameTest {
public static void main(String[] args) {
SimpleFrame frame = new SimpleFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
• Prozor najviše razine u jednoj aplikaciji frame.setVisible(true);
(prozor koji nije sadržan u drugom
}
prozoru) naziva se frame u Javinoj
terminologiji. }
class SimpleFrame extends JFrame
• U AWT biblioteci modelira ga klasa {
Frame, a u swing biblioteci klasa
public SimpleFrame()
JFrame, koja proširuje Frame. JFrame je
jedna od rijetkih Swing komponenti {
koju iscrtavaju grafičke biblioteke na setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
danoj platformi. }
public static final int DEFAULT_WIDTH = 300;
public static final int DEFAULT_HEIGHT = 200;
}
Jpanel
Jframe
lanac
nasljeđivanja
java.awt za pozicioniranje ekrana
• JFrame nasljeđuje brojne metode od klasa Window i Container. Među njima su i metode za
pozicioniranje prozora na ekranu: setSize i setLocation, no da bismo dobro pozicionirali ekran
trebamo znati njegovu rezoluciju. Tu informaciju možemo dobiti od klase java.awt.Toolkit.
setTitle("Centrirani prozor");
}
JPanel
• Moguće je direktno prikazivati informacije u frame-u, no to nije dobar način konstrukcije
korisničkog sučelja. Frame je komponenta koja je namijenjena držanju drugih,
specijaliziranih komponenti. Za crtanje koristimo komponentu koja se naziva JPanel.
• Da bismo dodali neku komponentu prozoru (JPanel) treba prvo od prozora dobiti content
pane pomoću metode getContentPane. Content pane je Container u koji stavljamo druge
komponente. U tu svrhu on ima metodu add. Kod za dodavanje komponente izgleda
ovako:
• Za crtanje:
• Point2D
• Line2D
• Rectangle2D
• Shape2D java.awt.geom
package drawtest;
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
// crtamo pravokutnik
double leftX = 100;
double topY = 100;
double width = 200;
double height = 150;