Skip to content

Instantly share code, notes, and snippets.

@MacoChave
Created June 7, 2022 17:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MacoChave/3045d14a0393700c919b03e35751fcec to your computer and use it in GitHub Desktop.
Save MacoChave/3045d14a0393700c919b03e35751fcec to your computer and use it in GitHub Desktop.
Editor con Java Swing
package GUI;
import javax.swing.*;
import java.awt.*;
public class EditorApp extends JFrame {
Panel panel;
public EditorApp() {
super("Compi Editor");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(1024, 768);
setLocationRelativeTo(null);
panel = new Panel();
add(panel);
}
}
class Panel extends JPanel {
private JMenuBar menuBar;
private JMenu menuFile, menuBuild, menuReport, menuHelp;
private JMenuItem menuItemNew, menuItemOpen, menuItemSave, menuItemExit, menuItemAnalize, menuItemExecute, menuItemAST,
menuItemSymbols, menuItemErrors, menuItemAbout;
private JPanel ventana;
private JTextPane sourcePane, consolePane;
private JLabel cursorPosition;
public Panel() {
setLayout(new BorderLayout());
setBackground(new java.awt.Color(46, 40, 42));
setSize(1024, 768);
setLocation(0, 0);
addMenu();
ventana = new JPanel();
ventana.setLayout(new GridLayout(1,2,5,5));
add(ventana, BorderLayout.CENTER);
addSourcePane();
addConsolePane();
addCursorPosition();
}
public void addMenu() {
menuBar = new JMenuBar();
menuBar.setBounds(0, 0, 1024, 25);
setBackground(new java.awt.Color(46, 40, 42));
menuBar.setForeground(new java.awt.Color(46, 40, 42));
menuBar.setFont(new java.awt.Font("Segoe UI", 0, 12));
addMenuFile();
addMenuBuild();
addMenuReport();
addMenuHelp();
add(menuBar, BorderLayout.NORTH);
}
private void addMenuFile() {
menuFile = new JMenu("File");
menuFile.setFont(new java.awt.Font("Segoe UI", 0, 12));
menuFile.setForeground(new java.awt.Color(46, 40, 42));
menuFile.setBackground(new java.awt.Color(46, 40, 42));
menuItemNew = new JMenuItem("New");
menuItemNew.setFont(new java.awt.Font("Segoe UI", 0, 12));
menuItemNew.setForeground(new java.awt.Color(255, 255, 255));
menuItemNew.setBackground(new java.awt.Color(46, 40, 42));
menuItemOpen = new JMenuItem("Open");
menuItemOpen.setFont(new java.awt.Font("Segoe UI", 0, 12));
menuItemOpen.setForeground(new java.awt.Color(255, 255, 255));
menuItemOpen.setBackground(new java.awt.Color(46, 40, 42));
menuItemSave = new JMenuItem("Save");
menuItemSave.setFont(new java.awt.Font("Segoe UI", 0, 12));
menuItemSave.setForeground(new java.awt.Color(255, 255, 255));
menuItemSave.setBackground(new java.awt.Color(46, 40, 42));
menuItemExit = new JMenuItem("Exit");
menuItemExit.setFont(new java.awt.Font("Segoe UI", 0, 12));
menuItemExit.setForeground(new java.awt.Color(255, 255, 255));
menuItemExit.setBackground(new java.awt.Color(46, 40, 42));
menuFile.add(menuItemNew);
menuFile.add(menuItemOpen);
menuFile.add(menuItemSave);
menuFile.addSeparator();
menuFile.add(menuItemExit);
menuBar.add(menuFile);
}
private void addMenuBuild() {
menuBuild = new JMenu("Build");
menuBuild.setFont(new java.awt.Font("Segoe UI", 0, 12));
menuBuild.setForeground(new java.awt.Color(46, 40, 42));
menuBuild.setBackground(new java.awt.Color(46, 40, 42));
menuItemAnalize = new JMenuItem("Analize");
menuItemAnalize.setFont(new java.awt.Font("Segoe UI", 0, 12));
menuItemAnalize.setForeground(new java.awt.Color(255, 255, 255));
menuItemAnalize.setBackground(new java.awt.Color(46, 40, 42));
menuItemExecute = new JMenuItem("Execute");
menuItemExecute.setFont(new java.awt.Font("Segoe UI", 0, 12));
menuItemExecute.setForeground(new java.awt.Color(255, 255, 255));
menuItemExecute.setBackground(new java.awt.Color(46, 40, 42));
menuBuild.add(menuItemAnalize);
menuBuild.add(menuItemExecute);
menuBar.add(menuBuild);
}
private void addMenuReport() {
menuReport = new JMenu("Report");
menuReport.setFont(new java.awt.Font("Segoe UI", 0, 12));
menuReport.setForeground(new java.awt.Color(46, 40, 42));
menuReport.setBackground(new java.awt.Color(46, 40, 42));
menuItemAST = new JMenuItem("AST");
menuItemAST.setFont(new java.awt.Font("Segoe UI", 0, 12));
menuItemAST.setForeground(new java.awt.Color(255, 255, 255));
menuItemAST.setBackground(new java.awt.Color(46, 40, 42));
menuItemSymbols = new JMenuItem("Symbols");
menuItemSymbols.setFont(new java.awt.Font("Segoe UI", 0, 12));
menuItemSymbols.setForeground(new java.awt.Color(255, 255, 255));
menuItemSymbols.setBackground(new java.awt.Color(46, 40, 42));
menuItemErrors = new JMenuItem("Errors");
menuItemErrors.setFont(new java.awt.Font("Segoe UI", 0, 12));
menuItemErrors.setForeground(new java.awt.Color(255, 255, 255));
menuItemErrors.setBackground(new java.awt.Color(46, 40, 42));
menuReport.add(menuItemAST);
menuReport.add(menuItemSymbols);
menuReport.add(menuItemErrors);
menuBar.add(menuReport);
}
private void addMenuHelp() {
menuHelp = new JMenu("Help");
menuHelp.setFont(new java.awt.Font("Segoe UI", 0, 12));
menuHelp.setForeground(new java.awt.Color(46, 40, 42));
menuHelp.setBackground(new java.awt.Color(46, 40, 42));
menuItemAbout = new JMenuItem("About");
menuItemAbout.setFont(new java.awt.Font("Segoe UI", 0, 12));
menuItemAbout.setForeground(new java.awt.Color(255, 255, 255));
menuItemAbout.setBackground(new java.awt.Color(46, 40, 42));
menuHelp.add(menuItemAbout);
menuBar.add(menuHelp);
}
private void addSourcePane() {
sourcePane = new JTextPane();
sourcePane.setBounds(0, 0, 1024, 768);
sourcePane.setBackground(new java.awt.Color(65, 57, 60));
sourcePane.setForeground(new java.awt.Color(255, 255, 255));
sourcePane.setFont(new java.awt.Font("Monospaced", 0, 14));
sourcePane.setText("");
ventana.add(sourcePane);
}
private void addConsolePane() {
consolePane = new JTextPane();
consolePane.setBounds(0, 768, 1024, 200);
consolePane.setBackground(new java.awt.Color(65, 57, 60));
consolePane.setForeground(new java.awt.Color(255, 255, 255));
consolePane.setFont(new java.awt.Font("Monospaced", 0, 14));
consolePane.setText("");
ventana.add(consolePane);
}
private void addCursorPosition() {
cursorPosition = new JLabel("0:0");
cursorPosition.setBounds(0, 0, 100, 20);
cursorPosition.setForeground(new java.awt.Color(255, 255, 255));
cursorPosition.setFont(new java.awt.Font("Segoe UI", 0, 12));
add(cursorPosition, BorderLayout.SOUTH);
}
}
package GUI;
public class EditorController {
}
import GUI.EditorApp;
public class Main {
public static void main(String[] args) {
EditorApp app = new EditorApp();
app.setVisible(true);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment