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.