Ergänzung der Funktionalität
(EN google-translate)
(PL google-translate)
|
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class AVReditorGUI
{
//ERGAENZUNG:
AVReditor avreditor = new AVReditor();
Color ROT = new Color(255,220,220);
Color GRUEN = new Color(220,255,220);
Color NEUTRAL = new Color(220,220,255);
Color NEUTRAL2 = new Color(240,240,255);
int BREITE = 800;
int HOEHE = 600;
Label kompilieren,wandeln,lesen,flashen;
JButton go;
//AENDERUNG:
JTextArea textfeld;
private void setzeGroesse(Component komponente,int breite, int hoehe)
{
komponente.setBounds(0,0,breite,hoehe);
komponente.setSize(new Dimension(breite,hoehe));
komponente.setMinimumSize(new Dimension(breite,hoehe));
komponente.setMaximumSize(new Dimension(breite,hoehe));
komponente.setPreferredSize(new Dimension(breite,hoehe));
}
public AVReditorGUI()
{
JFrame fenster = new JFrame("AVR Editor");
fenster.setBounds(10,10,BREITE,HOEHE);
fenster.addWindowListener(new FensterSchliesser(fenster));
ScrollPane scrollpane = new ScrollPane(ScrollPane.SCROLLBARS_AS_NEEDED);
scrollpane.setBackground(Color.WHITE);
//AENDERUNG:
textfeld = new JTextArea(avreditor.beispielquelltext);
textfeld.setBackground(new Color(220,220,255));
textfeld.setFont(new Font("Monospaced", Font.PLAIN, 14));
textfeld.setEditable(true);
scrollpane.add(textfeld);
fenster.getContentPane().setLayout(new BoxLayout(fenster.getContentPane(),BoxLayout.Y_AXIS));
JPanel paneloben = new JPanel();
JPanel panelunten = new JPanel();
setzeGroesse(paneloben,BREITE,30);
setzeGroesse(panelunten,BREITE-10,HOEHE-30);
paneloben.setLayout(new BoxLayout(paneloben,BoxLayout.X_AXIS));
go = new JButton("GO");
//ERGAENZUNG:
go.addActionListener(new KnopfLauscher());
Label dummy = new Label(" ");
kompilieren = new Label("kompilieren");
wandeln = new Label("wandeln");
lesen = new Label("lesen");
flashen = new Label("flashen");
kompilieren.setFont(new Font("Arial", Font.BOLD, 14));
wandeln.setFont(new Font("Arial", Font.BOLD, 14));
lesen.setFont(new Font("Arial", Font.BOLD, 14));
flashen.setFont(new Font("Arial", Font.BOLD, 14));
//dummy.setBackground(Color.LIGHT_GRAY);
kompilieren.setBackground(NEUTRAL);
wandeln.setBackground(NEUTRAL);
lesen.setBackground(NEUTRAL);
flashen.setBackground(NEUTRAL);
setzeGroesse(go,BREITE/6,30);
setzeGroesse(dummy,BREITE/6,30);
setzeGroesse(kompilieren,BREITE/6,30);
setzeGroesse(wandeln,BREITE/6,30);
setzeGroesse(lesen,BREITE/6,30);
setzeGroesse(flashen,BREITE/6,30);
paneloben.add(go);
paneloben.add(dummy);
paneloben.add(kompilieren);
paneloben.add(wandeln);
paneloben.add(lesen);
paneloben.add(flashen);
setzeGroesse(scrollpane,BREITE-20,HOEHE-70);
panelunten.add(scrollpane);
fenster.getContentPane().add(paneloben);
fenster.getContentPane().add(panelunten);
fenster.setVisible(true);
}
public static void main(String[] args)
{
AVReditorGUI rasterlayout = new AVReditorGUI();
}
//ERGAENZUNG:
private class KnopfLauscher implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
kompilieren.setBackground(NEUTRAL);
wandeln.setBackground(NEUTRAL);
lesen.setBackground(NEUTRAL);
flashen.setBackground(NEUTRAL);
avreditor.alles(textfeld.getText());
if(avreditor.TEST_KOMPILIEREN==true)
kompilieren.setBackground(GRUEN);
else
kompilieren.setBackground(ROT);
if(avreditor.TEST_WANDELN==true)
wandeln.setBackground(GRUEN);
else
wandeln.setBackground(ROT);
if(avreditor.TEST_LESEN==true)
lesen.setBackground(GRUEN);
else
lesen.setBackground(ROT);
if(avreditor.TEST_FLASHEN==true)
flashen.setBackground(GRUEN);
else
flashen.setBackground(ROT);
}
}
private class FensterSchliesser implements WindowListener
{
private Frame fenster;
public FensterSchliesser(Frame fenster)
{
this.fenster = fenster;
}
public void windowActivated(WindowEvent e) {}
public void windowClosed(WindowEvent e) {}
public void windowClosing(WindowEvent e)
{
System.out.println("Beim Schliessen koennte der aktuelle Quelltext gespeichert werden.");
fenster.dispose();
System.exit(0);
}
public void windowDeactivated(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowOpened(WindowEvent e) {}
}
}
Code 0-1: AVReditorGUI.java - GUI-Programm mit Funktionalität.