package net.sf.f3270;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
public class TerminalWindowIde {
private JFrame frame;
public static void main(String[] args) {
new TerminalWindowIde();
}
public TerminalWindowIde() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (final Exception e) {
throw new RuntimeException(e);
}
createFrame("Shell");
}
private void createFrame(final String title) {
JPanel mainPane = new JPanel();
BoxLayout boxLayout = new BoxLayout(mainPane, BoxLayout.Y_AXIS);
mainPane.setLayout(boxLayout);
mainPane.setBorder(new EmptyBorder(5, 5, 5, 5));
mainPane.add(createLabel("Commands"));
mainPane.add(createCommands());
mainPane.add(Box.createRigidArea(new Dimension(0, 10)));
mainPane.add(createLabel("Commands"));
mainPane.add(createInput());
mainPane.add(Box.createRigidArea(new Dimension(0, 10)));
mainPane.add(createLabel("Output"));
mainPane.add(createOutput());
frame = new JFrame(title);
final Container contentPane = frame.getContentPane();
contentPane.setBackground(new Color(224, 224, 224));
contentPane.add(mainPane, BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(true);
frame.pack();
frame.setVisible(true);
}
private Component createLabel(String caption) {
JLabel label = new JLabel(caption);
label.setAlignmentX(Component.LEFT_ALIGNMENT);
return label;
}
private Component createCommands() {
JTable commandsTable = new JTable();
JScrollPane scroller = new JScrollPane(commandsTable);
scroller.setBorder(new LineBorder(Color.gray));
return scroller;
}
private Component createInput() {
JTextField inputTextField = new JTextField();
inputTextField.setBorder(new LineBorder(Color.gray));
return inputTextField;
}
private Component createOutput() {
JTextPane outputTextPane = new JTextPane();
JScrollPane scroller = new JScrollPane(outputTextPane);
scroller.setBorder(new LineBorder(Color.gray));
return scroller;
}
public void close() {
frame.setVisible(false);
}
}