Please I need some help. I am trying to create a JFrame
to contain Tabs, and each tab will show one panel. Each panel contains buttons and Textfields
. The panels are should show a separate class on each tab but the panels show without the buttons and the Textfields
. Any help will be appreciated.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JFrame;
public class CELTool extends JFrame implements ActionListener {
JTabbedPane tab;
public CELTool() {
JFrame frame = new JFrame("CELTool");
tab = new JTabbedPane();
frame.add(tab, BorderLayout.CENTER);
Illustration etool = new Illustration();
tab.add("Illustration", etool);
Encrypt crypt = new Encrypt();
tab.add("Crypt", crypt);
Decrypt decrypt = new Decrypt();
tab.add("Decrypt", decrypt);
frame.setSize(500, 750);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent ae) {
}
public static void main(String[] args) {
CELTool clt = new CELTool();//
clt.setSize(400,500);
clt.setVisible(true);
}
}
class Illustration extends JPanel {
static String[] strPlaintext = {"Original Input", "InitialPermutation", "First RIound ", "Second Round",
"Third Round", "Fourth Round", "Fifth Round", "Sixth Round", "Seventh Round",
"Eight Round", "Ninth Round", "Tenth Round", "Eleventh Round", "Twelveth Round",
"Thirteenth Round", "Fourtheenth Round", "Fithteenth Round", "Sixtheenth Round",
"Final Round", "Ciphertext"};
static String[] str2 = {"Key", "Round Sixteen", "Round Fithteen", "Round Fourteen", "Round Thirteen", "Round Twelve",
"Round Eleven", "Round Ten",};
int leading, ascent, height, width;
int leading2, ascent2, height2, width2;
int xcoord = 40, ycoord = 100, xcoord2 = 600, ycoord2 = 60;
static final int BORDER = 5;
public void paint(Graphics gr) {
super.paint(gr);
int i = 0, xcoord = 40, ycoord = 100, xcoord2 = 600, ycoord2 = 60;
leading = gr.getFontMetrics().getLeading();
ascent = gr.getFontMetrics().getAscent();
height = gr.getFontMetrics().getHeight();
width = gr.getFontMetrics().stringWidth(strPlaintext[i]);
for (i = 0; i < strPlaintext.length; i++) {
gr.drawString(strPlaintext[i], xcoord, ycoord);
leading = gr.getFontMetrics().getLeading();
ascent = gr.getFontMetrics().getAscent();
height = gr.getFontMetrics().getHeight();
width = gr.getFontMetrics().stringWidth(strPlaintext[i]);
gr.drawRect(xcoord - BORDER, ycoord - (ascent + leading + BORDER), width + 2 * BORDER, height + 2 * BORDER);
ycoord += 40;
}
}
}
class Encrypt extends JPanel {
public Encrypt() {
JPanel panel5 = new JPanel();
panel5.setLayout(new GridBagLayout()); //panel5.setLayout((LayoutManager) new GridBagConstraints());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
panel5.add(new JLabel("Input plaintext text"), gbc);
gbc.gridx = 1;
gbc.gridy = 0;
panel5.add(new JTextField("0123456789ABCDEF", 20), gbc);
gbc.gridx = 0;
gbc.gridy = 2;
panel5.add(new JLabel("Input text in Hex"), gbc);
gbc.gridx = 1;
gbc.gridy = 2;
panel5.add(new JTextField("0123456789ABCDEF", 20), gbc);
panel5.setSize(200, 300);
panel5.setVisible(true);
}
}
class Decrypt extends JPanel {
JPanel decPanel;
JTextField dectxt;
public Decrypt() {
decPanel = new JPanel();
decPanel.add(new JLabel("Cipher"));
decPanel.add(new JTextField());
decPanel.add(new JLabel("key"));
decPanel.add(new JTextField());
decPanel.add(new JLabel("Plaintext"));
decPanel.add(new JTextField());
decPanel.add(new JButton("Decrypt"));
decPanel.add(new JButton("Reset"));
decPanel.validate();
}
}