Gyakorlati alapok IV.

Végre ablakozunk! (AWT, Swing, JavaFX)

 

Frame-hegyek alakzatban

 

Pálinkó Timea rendkívül tehetséges tanítványom adott tudásszintjén a Tőle megszokott kreatív módon nyúlt hozzá tanulmányaihoz. Feladata az volt, hogy a frame-műveletek (és persze az eddigiek) megtanulását valamilyen fantáziadús ötlettel bizonyítsa be. Azonban az ötlet a programozásban nem elég: tudni kell azt ki is dolgozni. Timi a projektbe építette eddigi programozástechnikai felismeréseinek nagy részét:

Nézzük meg a futtatható Java-kódot:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

Main.java

 

import javax.swing.SwingUtilities;

public class Main {

public static void main(String[] args) {
    WindowLeft1 winL1 = new WindowLeft1();
    WindowLeft2 winL2 = new WindowLeft2();
    WindowRight1 winR1 = new WindowRight1();
    WindowRight2 winR2 = new WindowRight2();
    WindowUp1 winU1 = new WindowUp1();
    WindowUp2 winU2 = new WindowUp2();
    WindowDown1 winD1 = new WindowDown1();
    WindowDown2 winD2 = new WindowDown2();

    SwingUtilities.invokeLater(winL1);
    SwingUtilities.invokeLater(winL2);
    SwingUtilities.invokeLater(winR1);
    SwingUtilities.invokeLater(winR2);
    SwingUtilities.invokeLater(winU1);
    SwingUtilities.invokeLater(winD1);
    SwingUtilities.invokeLater(winU2);
    SwingUtilities.invokeLater(winD2);
    }
}

 

Center.java

 

import java.awt.GraphicsEnvironment;
import java.awt.Point;
import javax.swing.JFrame;

public class Center {
void setCenter(JFrame frame, int offset, int offset2){
    Point center = GraphicsEnvironment.getLocalGraphicsEnvironment().getCenterPoint();
    int x = (int)center.getX() - (frame.getWidth() / 2 + offset);
    int y = (int)center.getY() -(frame.getHeight() / 2 +offset2);
    Point ablakCenter = new Point(x,y);
    frame.setLocation(ablakCenter);
    }
}

 

WindowDown1.java

 

import java.awt.Color;
import javax.swing.JFrame;

public class WindowDown1 extends JFrame implements Runnable {

private int offset2YWin1 = -200;

public int getOffset2YWin1() {
    return offset2YWin1;
}


public void setOffset2YWin1(int offset2YWin1){
    this.offset2YWin1 = offset2YWin1;
}


@Override
public void run(){
    {
        JFrame frame = new JFrame();
        Center center = new Center();
        frame.setSize(400,300);
        frame.setTitle("Alsó első ablak");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        center.setCenter(frame,0,getOffset2YWin1());
        frame.getContentPane().setBackground(Color.MAGENTA);
        frame.setVisible(true);
        }
    }
}

 

WindowDown2.java

 

import java.awt.Color;
import javax.swing.JFrame;

public class WindowDown2 extends JFrame implements Runnable{
private int offsetYWinDown2 = -400;

public int getOffsetYWinDown2(){
    return offsetYWinDown2;
}


public void setOffsetYWinDonw2(int offsetYWinDown2){
    this.offsetYWinDown2 = offsetYWinDown2;
}


@Override
public void run(){
    {
        JFrame frame = new JFrame();
        Center center = new Center();
        frame.setSize(400,300);
        frame.setTitle("Alsó második ablak");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        center.setCenter(frame,0,offsetYWinDown2);
        frame.getContentPane().setBackground(Color.red);
        frame.setVisible(true);
        }
    }
}

 

WindowLeft1.java

 

import java.awt.Color;
import javax.swing.JFrame;

public class WindowLeft1 extends JFrame implements Runnable {
private int offsetXWinLeft1 = 200;


public int getOffsetXWinLeft1(){
    return offsetXWinLeft1;
}


public void setOffsetXWinLeft1(){
    this.offsetXWinLeft1 = offsetXWinLeft1;
}


@Override
public void run(){
    {
        JFrame frame = new JFrame();
        Center center = new Center();
        frame.setSize(400,300) ;
        frame.setTitle("Bal oldali első ablak");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        center.setCenter(frame,getOffsetXWinLeft1(), 0);
        frame.getContentPane().setBackground(Color.red);
        frame.setVisible(true);
        }
    }
}

 

WindowLeft2.java

 

import java.awt.Color;
import javax.swing.JFrame;

public class WindowLeft2 extends JFrame implements Runnable{
private int offsetXWinLeft2 = 600;


public int getOffsetXWinLeft2(){
    return offsetXWinLeft2;
}


public void setOffsetXWinLeft2(int offsetXWinLeft2){
    this.offsetXWinLeft2=offsetXWinLeft2;
}


@Override
public void run(){
    {
        JFrame frame = new JFrame();
        Center center = new Center();
        frame.setSize(400,300);
        frame.setTitle("Bal oldali második ablak");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        center.setCenter(frame,getOffsetXWinLeft2(), 0);
        frame.getContentPane().setBackground(Color.DARK_GRAY);
        frame.setVisible(true);
        }
    }
}

 

WindowRight1.java
 

import java.awt.Color;
import javax.swing.JFrame;

public class WindowRight1 extends JFrame implements Runnable {
private int offsetXWinRight1 = -200;


public int getOffsetXWinRight1(){
    return offsetXWinRight1;
}
public void setOffsetXWinRight1(int offsetXWinRight1){
    this.offsetXWinRight1 = offsetXWinRight1;
}


@Override
public void run(){
    {
        JFrame frame = new JFrame();
        Center center = new Center();
        frame.setSize(400,300);
        frame.setTitle("Jobb oldali első ablak");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        center.setCenter(frame,getOffsetXWinRight1(),0);
        frame.getContentPane().setBackground(Color.PINK);
        frame.setVisible(true);
        }
    }
}

 

WindowRight2.java

 

import java.awt.Color;
import javax.swing.JFrame;

public class WindowRight2 extends JFrame implements Runnable {
private int offsetXWinRight2 = -600;

public int getOffsetXWinRight2 (){
    return offsetXWinRight2;
}


public void setOffsetXWinRight2(int offsetXWinRight2){
    this.offsetXWinRight2 = offsetXWinRight2;
}


@Override
public void run(){
    {
        JFrame frame = new JFrame();
        Center center = new Center();
        frame.setSize(400,300);
        frame.setTitle("Jobb oldali második ablak");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        center.setCenter(frame,getOffsetXWinRight2(),0);
        frame.getContentPane().setBackground(Color.cyan);
        frame.setVisible(true);
        }
    }
}

 

WindowUp1.java

 

import java.awt.Color;
import javax.swing.JFrame;

public class WindowUp1 extends JFrame implements Runnable {
private int offset2YWinUp1 = 200;


public int getOffset2YWinUp1 (){
    return offset2YWinUp1;
}


public void setOffset2YWinUp1(int offset2YWinUp1){
    this.offset2YWinUp1 = offset2YWinUp1;
}


@Override
public void run(){
    {
        JFrame frame = new JFrame();
        Center center = new Center();
        frame.setSize(400,300);
        frame.setTitle("Felső első ablak");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        center.setCenter(frame,0,getOffset2YWinUp1());
        frame.getContentPane().setBackground(Color.ORANGE);
        frame.setVisible(true);
        }
    }
}

 

WindowUp2.java

 

import java.awt.Color;
import javax.swing.JFrame;

public class WindowUp2 extends JFrame implements Runnable {
private int offset2YWinUp2 = 300;

public int getOffset2YWinUp2(){
    return offset2YWinUp2;
}


public void setOffset2YWinUp2(int offset2YWinUp2){
    this.offset2YWinUp2 = offset2YWinUp2;
}


@Override
public void run(){
    {
        JFrame frame = new JFrame();
        Center center = new Center();
        frame.setSize (400,300);
        frame.setTitle("Felső második ablak");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        center.setCenter(frame, 0, getOffset2YWinUp2());
        frame.getContentPane().setBackground(Color.CYAN);
        frame.setVisible(true);
        }
    }
}

 

Végeredmény (a monitor közepén / felbontástól függetlenül/):

 

www.informatika-programozas.hu - Frame-hegyek alakzatban