Tabela Sac - Sistema de Amortização constante

Java

22/05/2015

Preciso criar uma tabela SAC e inserir os valores, digitados na tabela após o usuario clicar em resultado. Este é o layout, mas preciso criar ações com as formulas da tabela SAC, e não estou conseguindo fazer.


import java.awt.EventQueue;

import javax.swing.JInternalFrame;
import javax.swing.JToolBar;

import java.awt.BorderLayout;

import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JButton;
import javax.swing.SwingConstants;

import java.awt.Component;

import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;


public class Calculadora3 extends JInternalFrame {
private JTextField textField;
private JTextField textField_1;
private JTextField textField_2;
private JTable table;

/**
* Launch the application.
*/
public static void main(String[] args) {



EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Calculadora3 frame = new Calculadora3();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public Calculadora3() {
setTitle("Tabela SAC - Sistema de Amortização Constante");
setBounds(100, 100, 453, 422);

JPanel painelCalculos = new JPanel();

JPanel painelMenu = new JPanel();

JScrollPane scrollPane = new JScrollPane();
GroupLayout groupLayout = new GroupLayout(getContentPane());
groupLayout.setHorizontalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addComponent(painelCalculos, Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 440, Short.MAX_VALUE)
.addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 433, Short.MAX_VALUE)
.addComponent(painelMenu, GroupLayout.DEFAULT_SIZE, 433, Short.MAX_VALUE))
.addContainerGap())
);
groupLayout.setVerticalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addComponent(painelCalculos, GroupLayout.PREFERRED_SIZE, 86, GroupLayout.PREFERRED_SIZE)
.addGap(11)
.addComponent(painelMenu, GroupLayout.PREFERRED_SIZE, 35, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 231, GroupLayout.PREFERRED_SIZE)
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);




table = new JTable();
table.setModel(new DefaultTableModel(
new Object[][] {
{temp, pgto ,jr ,amortiz ,sdevedor},
},
new String[] {
"N", "Pagamento", "Juros", "Amortização", "Saldo Devedor"



}
));
table.getColumnModel().getColumn(1).setPreferredWidth(119);
table.getColumnModel().getColumn(2).setPreferredWidth(122);
table.getColumnModel().getColumn(3).setPreferredWidth(113);
table.getColumnModel().getColumn(4).setPreferredWidth(137);
scrollPane.setViewportView(table);

JButton btnNovo = new JButton("Novo");
btnNovo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
}
});

JButton btnResultado = new JButton("Resultado");



JButton btnSalvar = new JButton("Salvar");
GroupLayout gl_painelMenu = new GroupLayout(painelMenu);
gl_painelMenu.setHorizontalGroup(
gl_painelMenu.createParallelGroup(Alignment.LEADING)
.addGroup(gl_painelMenu.createSequentialGroup()
.addContainerGap()
.addComponent(btnNovo)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(btnResultado)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(btnSalvar)
.addContainerGap(162, Short.MAX_VALUE))
);
gl_painelMenu.setVerticalGroup(
gl_painelMenu.createParallelGroup(Alignment.TRAILING)
.addGroup(gl_painelMenu.createSequentialGroup()
.addContainerGap(12, Short.MAX_VALUE)
.addGroup(gl_painelMenu.createParallelGroup(Alignment.LEADING)
.addComponent(btnNovo, Alignment.TRAILING)
.addComponent(btnResultado, Alignment.TRAILING)
.addComponent(btnSalvar, Alignment.TRAILING)))
);
gl_painelMenu.linkSize(SwingConstants.VERTICAL, new Component[] {btnNovo, btnResultado, btnSalvar});
gl_painelMenu.linkSize(SwingConstants.HORIZONTAL, new Component[] {btnNovo, btnResultado, btnSalvar});
painelMenu.setLayout(gl_painelMenu);

JLabel dValor = new JLabel("Digite o Valor:");
textField = new JTextField();
textField.setColumns(10);



JLabel nMeses = new JLabel("Num de Meses:");
textField_1 = new JTextField();
textField_1.setColumns(10);

JLabel tJuros = new JLabel("Taxa de Juros");




//JOptionPane.showMessageDialog(null, + (num1 + num2));

textField_2 = new JTextField();
textField_2.setColumns(10);
GroupLayout gl_painelCalculos = new GroupLayout(painelCalculos);
gl_painelCalculos.setHorizontalGroup(
gl_painelCalculos.createParallelGroup(Alignment.LEADING)
.addGroup(gl_painelCalculos.createSequentialGroup()
.addGap(6)
.addGroup(gl_painelCalculos.createParallelGroup(Alignment.LEADING)
.addGroup(gl_painelCalculos.createSequentialGroup()
.addComponent(tJuros)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(textField_2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_painelCalculos.createSequentialGroup()
.addComponent(dValor)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(textField, GroupLayout.PREFERRED_SIZE, 141, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_painelCalculos.createSequentialGroup()
.addComponent(nMeses)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(textField_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
.addContainerGap(208, Short.MAX_VALUE))
);
gl_painelCalculos.setVerticalGroup(
gl_painelCalculos.createParallelGroup(Alignment.LEADING)
.addGroup(gl_painelCalculos.createSequentialGroup()
.addContainerGap()
.addGroup(gl_painelCalculos.createParallelGroup(Alignment.BASELINE)
.addComponent(dValor)
.addComponent(textField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(gl_painelCalculos.createParallelGroup(Alignment.BASELINE)
.addComponent(textField_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(nMeses))
.addPreferredGap(ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(gl_painelCalculos.createParallelGroup(Alignment.BASELINE)
.addComponent(tJuros)
.addComponent(textField_2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
painelCalculos.setLayout(gl_painelCalculos);
getContentPane().setLayout(groupLayout);

}

private Object calcula() {
// TODO Auto-generated method stub
return null;
}

private void calcula(double d, double e, double f, double temp2,
double pgto2, double jr2, double amortiz2, double g) {
// TODO Auto-generated method stub

}

double n1, n2, n3,temp, pgto, jr, amortiz, sdevedor;
}
Julio

Julio

Curtidas 0

Respostas

Thiago Santana

Thiago Santana

22/05/2015

Qual erro gerado?
Posta seu código utilizando a Tag "
" para facilitar a visualização!
GOSTEI 0
Julio

Julio

22/05/2015

Preciso criar um programa para calcular o SAC, o usuario digita os valores e quando clicar em calcular ele vai imprimir os valores na tabela
o exemplo mais claro é nesse site : http://fazaconta.com/financiamentos-tabela-sac.htm

import java.awt.EventQueue;

import javax.swing.JInternalFrame;
import javax.swing.JToolBar;

import java.awt.BorderLayout;

import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JButton;
import javax.swing.SwingConstants;

import java.awt.Component;

import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;


public class Calculadora3 extends JInternalFrame {
	private JTextField textField;
	private JTextField textField_1;
	private JTextField textField_2;
	private JTable table;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		
			
		
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Calculadora3 frame = new Calculadora3();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public Calculadora3() {
		setTitle("Tabela SAC - Sistema de Amortização Constante");
		setBounds(100, 100, 453, 422);

		JPanel painelCalculos = new JPanel();

		JPanel painelMenu = new JPanel();

		JScrollPane scrollPane = new JScrollPane();
		GroupLayout groupLayout = new GroupLayout(getContentPane());
		groupLayout.setHorizontalGroup(
				groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
						.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
								.addComponent(painelCalculos, Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 440, Short.MAX_VALUE)
								.addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 433, Short.MAX_VALUE)
								.addComponent(painelMenu, GroupLayout.DEFAULT_SIZE, 433, Short.MAX_VALUE))
								.addContainerGap())
				);
		groupLayout.setVerticalGroup(
				groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
						.addComponent(painelCalculos, GroupLayout.PREFERRED_SIZE, 86, GroupLayout.PREFERRED_SIZE)
						.addGap(11)
						.addComponent(painelMenu, GroupLayout.PREFERRED_SIZE, 35, GroupLayout.PREFERRED_SIZE)
						.addGap(18)
						.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 231, GroupLayout.PREFERRED_SIZE)
						.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
				);
		
		
	@SuppressWarnings("unused")
	 float  n1 = 10, n2 =4, n3= 5,temp, pgto, jr, amortiz, sdevedor = 100000;
		
		temp = n2;
		jr = sdevedor /100;
		amortiz = sdevedor / n1;
		pgto = jr + amortiz;
		sdevedor = sdevedor - amortiz;
	
		
		
	
		
	
			

		table = new JTable();
		table.setModel(new DefaultTableModel(
			new Object[][] {
				{temp, pgto ,jr ,amortiz ,sdevedor},
			},
			new String[] {
				"N", "Pagamento", "Juros", "Amortização", "Saldo Devedor"
				
			
				
			}
		));
		table.getColumnModel().getColumn(1).setPreferredWidth(119);
		table.getColumnModel().getColumn(2).setPreferredWidth(122);
		table.getColumnModel().getColumn(3).setPreferredWidth(113);
		table.getColumnModel().getColumn(4).setPreferredWidth(137);
		scrollPane.setViewportView(table);

		JButton btnNovo = new JButton("Novo");
		btnNovo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
			}
		});

		JButton btnResultado = new JButton("Resultado");
		
		

		JButton btnSalvar = new JButton("Salvar");
		GroupLayout gl_painelMenu = new GroupLayout(painelMenu);
		gl_painelMenu.setHorizontalGroup(
				gl_painelMenu.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_painelMenu.createSequentialGroup()
						.addContainerGap()
						.addComponent(btnNovo)
						.addPreferredGap(ComponentPlacement.RELATED)
						.addComponent(btnResultado)
						.addPreferredGap(ComponentPlacement.RELATED)
						.addComponent(btnSalvar)
						.addContainerGap(162, Short.MAX_VALUE))
				);
		gl_painelMenu.setVerticalGroup(
				gl_painelMenu.createParallelGroup(Alignment.TRAILING)
				.addGroup(gl_painelMenu.createSequentialGroup()
						.addContainerGap(12, Short.MAX_VALUE)
						.addGroup(gl_painelMenu.createParallelGroup(Alignment.LEADING)
								.addComponent(btnNovo, Alignment.TRAILING)
								.addComponent(btnResultado, Alignment.TRAILING)
								.addComponent(btnSalvar, Alignment.TRAILING)))
				);
		gl_painelMenu.linkSize(SwingConstants.VERTICAL, new Component[] {btnNovo, btnResultado, btnSalvar});
		gl_painelMenu.linkSize(SwingConstants.HORIZONTAL, new Component[] {btnNovo, btnResultado, btnSalvar});
		painelMenu.setLayout(gl_painelMenu);

		JLabel dValor = new JLabel("Digite o Valor:");
		textField = new JTextField();
		textField.setColumns(10);
		
		

		JLabel nMeses = new JLabel("Num de Meses:");
		textField_1 = new JTextField();
		textField_1.setColumns(10);

		JLabel tJuros = new JLabel("Taxa de Juros");

		


		//JOptionPane.showMessageDialog(null, + (num1 + num2));

		textField_2 = new JTextField();
		textField_2.setColumns(10);
		GroupLayout gl_painelCalculos = new GroupLayout(painelCalculos);
		gl_painelCalculos.setHorizontalGroup(
				gl_painelCalculos.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_painelCalculos.createSequentialGroup()
						.addGap(6)
						.addGroup(gl_painelCalculos.createParallelGroup(Alignment.LEADING)
								.addGroup(gl_painelCalculos.createSequentialGroup()
										.addComponent(tJuros)
										.addPreferredGap(ComponentPlacement.UNRELATED)
										.addComponent(textField_2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
										.addGroup(gl_painelCalculos.createSequentialGroup()
												.addComponent(dValor)
												.addPreferredGap(ComponentPlacement.UNRELATED)
												.addComponent(textField, GroupLayout.PREFERRED_SIZE, 141, GroupLayout.PREFERRED_SIZE))
												.addGroup(gl_painelCalculos.createSequentialGroup()
														.addComponent(nMeses)
														.addPreferredGap(ComponentPlacement.RELATED)
														.addComponent(textField_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
														.addContainerGap(208, Short.MAX_VALUE))
				);
		gl_painelCalculos.setVerticalGroup(
				gl_painelCalculos.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_painelCalculos.createSequentialGroup()
						.addContainerGap()
						.addGroup(gl_painelCalculos.createParallelGroup(Alignment.BASELINE)
								.addComponent(dValor)
								.addComponent(textField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
								.addPreferredGap(ComponentPlacement.RELATED)
								.addGroup(gl_painelCalculos.createParallelGroup(Alignment.BASELINE)
										.addComponent(textField_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
										.addComponent(nMeses))
										.addPreferredGap(ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
										.addGroup(gl_painelCalculos.createParallelGroup(Alignment.BASELINE)
												.addComponent(tJuros)
												.addComponent(textField_2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
												.addContainerGap())
				);
		painelCalculos.setLayout(gl_painelCalculos);
		getContentPane().setLayout(groupLayout);

	}
	
	private Object calcula() {
		// TODO Auto-generated method stub
		return null;
	}

	private void calcula(double d, double e, double f, double temp2,
			double pgto2, double jr2, double amortiz2, double g) {
		// TODO Auto-generated method stub
		
	}

	double n1, n2, n3,temp, pgto, jr, amortiz, sdevedor;
}
GOSTEI 0
POSTAR