0

I am trying to make my program look like the image I attached but I don't know how to. I can't make the JTextFields positioned like that.

I also want to make it a JScrollPane instead of JPanel

import java.awt.*;
import javax.swing.*;
import java.text.NumberFormat;
import javax.swing.JFormattedTextField;
import java.awt.event.*;
import java.text.*;

public class Database extends JFrame
{

	private		JSplitPane	splitPaneV;
	private		JSplitPane	splitPaneH;
	private		JPanel		panel1;
	private		JPanel		panel2;
	private		JPanel		panel3;

	private JLabel gradeL, equivL;
	private JFormattedTextField gradeTF, equivTF;
	private JButton calculateBC, clearBC;
	
	private CalculateButtonHandlerC cbHandlerC;
	private ClearButtonHandlerC clHandlerC;
	
	private JLabel prelimL, midtermL, endtermL, finalL;
	private JFormattedTextField prelimTF, midtermTF, endtermTF, finalTF;
	private JButton calculateBS, clearBS;
	
	private CalculateButtonHandlerS cbHandlerS;
	private ClearButtonHandlerS clHandlerS;
	
	public Database()
	{
		setTitle( "Split Pane Application" );
		setBackground( Color.green );

		JPanel topPanel = new JPanel();
		topPanel.setLayout( new BorderLayout() );
		getContentPane().add( topPanel );

		// Create the panels
		createPanel1();
		createPanel2();
		createPanel3();

		// Create a splitter pane
		splitPaneV = new JSplitPane( JSplitPane.VERTICAL_SPLIT );
		topPanel.add( splitPaneV, BorderLayout.CENTER );

		splitPaneH = new JSplitPane( JSplitPane.HORIZONTAL_SPLIT );
		splitPaneH.setLeftComponent( panel1 );
		splitPaneH.setRightComponent( panel2 );

		splitPaneV.setLeftComponent( splitPaneH );
		splitPaneV.setRightComponent( panel3 );
	}

	public void createPanel2()
	{
		panel2 = new JPanel();
		panel2.setLayout(new GridLayout(5,2));

		// Add some buttons
		gradeL= new JLabel("Final Grade: ", SwingConstants.RIGHT);
		equivL = new JLabel("Equivalent: ", SwingConstants.RIGHT);
		
		NumberFormat real = NumberFormat.getNumberInstance();
		real.setGroupingUsed(false);
		real.setMaximumFractionDigits(2);
		real.setMinimumFractionDigits(2);
		
		gradeTF = new JFormattedTextField(real);
		equivTF = new JFormattedTextField(real);
	
		calculateBC = new JButton("Calculate");
		cbHandlerC = new CalculateButtonHandlerC();
		calculateBC.addActionListener(cbHandlerC);
		
		clearBC = new JButton("Clear");
		clHandlerC = new ClearButtonHandlerC();
		clearBC.addActionListener(clHandlerC);
		
		equivTF.setEditable(false);
		
		panel2.add(gradeL);
		panel2.add(gradeTF);
		panel2.add(equivL);
		panel2.add(equivTF);
		panel2.add(calculateBC);
		panel2.add(clearBC);

	}

	public void createPanel1()
	{
		panel1 = new JPanel();
		panel1.setLayout(new GridLayout(5,2));

		prelimL = new JLabel("Prelim Grade: ", SwingConstants.RIGHT);
		midtermL = new JLabel("Midterm Grade: ", SwingConstants.RIGHT);
		endtermL = new JLabel("Endterm Grade: ", SwingConstants.RIGHT);
		finalL = new JLabel("Final Grade: ", SwingConstants.RIGHT);
		
		NumberFormat real = NumberFormat.getNumberInstance();
		real.setGroupingUsed(false);
		real.setMaximumFractionDigits(2);
		real.setMinimumFractionDigits(2);
		
		prelimTF = new JFormattedTextField(real);
		midtermTF = new JFormattedTextField(real);
		endtermTF = new JFormattedTextField(real);
		finalTF = new JFormattedTextField(real);
				
		calculateBS = new JButton("Calculate");
		cbHandlerS = new CalculateButtonHandlerS();
		calculateBS.addActionListener(cbHandlerS);
		
		clearBS = new JButton("Clear");
		clHandlerS = new ClearButtonHandlerS();
		clearBS.addActionListener(clHandlerS);
		
		finalTF.setEditable(false);
		
		panel1.add(prelimL);
		panel1.add(prelimTF);
		panel1.add(midtermL);
		panel1.add(midtermTF);
		panel1.add(endtermL);
		panel1.add(endtermTF);
		panel1.add(finalL);
		panel1.add(finalTF);
		panel1.add(calculateBS);
		panel1.add(clearBS);
		
	}

	public void createPanel3()
	{
		panel3 = new JPanel();
		panel3.setLayout( new BorderLayout() );
                panel3.setPreferredSize( new Dimension( 500, 200 ) );
                panel3.setMinimumSize( new Dimension( 100, 50 ) );
        
		panel3.add( new JLabel( "Database" ), BorderLayout.NORTH );
		panel3.add( new JTextArea(), BorderLayout.CENTER );
	}

	public static void main( String args[] )
	{
		// Create an instance of the test application
		Database mainFrame	= new Database();
		mainFrame.pack();
		mainFrame.setVisible( true );
		mainFrame.setSize(450,400);
	}
	
	private class CalculateButtonHandlerC implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			double grade, finalg;
			
			grade = Double.parseDouble(gradeTF.getText());
			
			if(grade>=99.50 && grade<101)
				finalg = 1.00;
			else if(grade<99.50 && grade>=98.50)
				finalg = 1.10;
			else if(grade<98.50 && grade>=97.50)
				finalg = 1.20;
			else if(grade<97.50 && grade>=96.50)
				finalg = 1.30;
			else if(grade<96.50 && grade>=95.50)
				finalg = 1.40;
			else if(grade<95.50 && grade>=94.50)
				finalg = 1.50;
			else if(grade<94.50 && grade>=93.50)
				finalg = 1.60;
			else if(grade<93.50 && grade>=92.50)
				finalg = 1.70;
			else if(grade<92.50 && grade>=91.50)
				finalg = 1.80;
			else if(grade<91.50 && grade>=90.50)
				finalg = 1.90;
			else if(grade<90.50 && grade>=89.50)
				finalg = 2.00;
			else if(grade<89.50 && grade>=88.50)
				finalg = 2.10;
			else if(grade<88.50 && grade>=87.50)
				finalg = 2.20;
			else if(grade<87.50 && grade>=86.50)
				finalg = 2.30;
			else if(grade<86.50 && grade>=85.50)
				finalg = 2.40;
			else if(grade<85.50 && grade>=84.50)
				finalg = 2.50;
			else if(grade<84.50 && grade>=83.50)
				finalg = 2.60;
			else if(grade<83.50 && grade>=82.50)
				finalg = 2.70;
			else if(grade<82.50 && grade>=81.50)
				finalg = 2.80;
			else if(grade<81.50 && grade>=80.50)
				finalg = 2.90;
			else if(grade<80.50 && grade>=79.50)
				finalg = 3.00;
			else if(grade<79.50 && grade>=78.50)
				finalg = 3.10;
			else if(grade<78.50 && grade>=77.50)
				finalg = 3.20;
			else if(grade<77.50 && grade>=76.50)
				finalg = 3.30;
			else if(grade<76.50 && grade>=75.50)
				finalg = 3.40;
			else if(grade<75.50 && grade>=74.50)
				finalg = 3.50;
			else
				finalg = 5.0;
				
			equivTF.setText("" + finalg);
			equivTF.setEditable(false);
		}
	}
	
	private class ClearButtonHandlerC implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			gradeTF.setText("");
			equivTF.setText("");
		}
	}
	
	private class CalculateButtonHandlerS implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			double prelim, midterm, endterm, finalg;
			
			DecimalFormat df = new DecimalFormat("#.##");
			prelim = Double.parseDouble(prelimTF.getText());
			midterm = Double.parseDouble(midtermTF.getText());
			endterm = Double.parseDouble(endtermTF.getText());
			
			finalg = (prelim * .30) + (midterm * .30) + (endterm * .40);
			
			finalTF.setText("" + df.format(finalg));
			finalTF.setEditable(false);
		}
	}
	
	private class ClearButtonHandlerS implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			prelimTF.setText("");
			midtermTF.setText("");
			endtermTF.setText("");
			finalTF.setText("");
		}
	}
}
2
Contributors
1
Reply
2
Views
6 Years
Discussion Span
Last Post by NormR1
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.