Oi pessoa eu comecei a programar em java faz pouco tempo, estou com duvidas a respeito de interface.
Eu tenho um programa onde eu queria mudar os butoes, eu ouvir falar de look and feel liquid e costei da interface por que achei bem interessante os butoes ficarem ovais, mas eu tentei fazer e como naum tenho muita experiencia naum funcionou eu o seguinte codigo:
[code]package teste;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.plaf.multi.MultiLookAndFeel;
public class MudarLook extends Test implements ActionListener {
private javax.swing.UIManager.LookAndFeelInfo looks[];
private int Motif;
private int Windows;
private int Metal;
public void mudaLookAndFeel(int index) {
Motif = 0;
Windows = 1;
Metal = 2;
looks = javax.swing.UIManager.getInstalledLookAndFeels();
try {
javax.swing.UIManager.setLookAndFeel( looks[index].getClassName() );
javax.swing.SwingUtilities.updateComponentTreeUI( this );
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void actionPerformed(ActionEvent arg0) {
int index = 0;
mudaLookAndFeel(Motif);
}
public static void main(String[] args) {
MultiLookAndFeel app = new MultiLookAndFeel();
}
}
[/code]
So que eu sei que esta faltando alguma coisa tem como eu modificar o formato dos butoes sem precisar usar esse look and feel liquid?
E alguem pode ver o que esta faltando no meu codigo?
Por favor me dei alguma dica de como melhorar a interface da minha aplicacao ela esta muito feinha esse eh o codigo dela:
[code]package teste;
import javax.swing.*;
public class Test extends JFrame implements ActionListener
{
public static JLabel L1, L2;
private JLabel L3, L4, L5;
private JComboBox Cb;
private JTextField Txt1, Txt2;
public static JTextField Txt4, Txt3;
public static JTextArea TxtArquivo;
private JFileChooser Arquivo;
private JButton CmdConsultar, CmdGerar, CmdSair, CmdC;
public static JTable table;
public static DefaultTableModel model;
private JScrollPane js;
public static GridLayout grade;
private void setCenter(JFrame frame)
{
Dimension paneSize = frame.getSize();
Dimension screenSize = frame.getToolkit().getScreenSize();
frame.setLocation((screenSize.width - paneSize.width) / 2, (screenSize.height - paneSize.height) / 2);
}
public Test()
{
setSize(800, 590);
setResizable(false);
setTitle("Envio de dados");
setCenter(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container cp = getContentPane();
cp.setLayout(null);
model = new DefaultTableModel();
model.addTableModelListener(table);
model.addColumn("Nome do cliente");
model.addColumn("Endereco do cliente");
model.addColumn("CPF");
model.addColumn("CGC");
model.addColumn("Bairro");
model.addColumn("CEP");
model.addColumn("Telefone");
model.addColumn("Data do vencimento");
model.addColumn("Data da compra");
model.addColumn("Valor do Debito");
model.addColumn("Codigo do programa");
model.addColumn("Numero da ligacao");
L5 = new JLabel(" Dados dos Clientes");
//L5.setFont(new Font("Dialog", Font.PLAIN, 12));
js = new JScrollPane(L5);
js.setBounds(50, 60, 115, 21);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
cp.add(js);
table = new JTable();
table.setModel(model);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.setAutoscrolls(true);
int rows = 3;
int cols = 3;
JTable tabela = new JTable (rows, cols);
// Desativar auto redimensionamento
table.setAutoResizeMode (JTable.AUTO_RESIZE_OFF);
// Set a primeira coluna visível a 100 pixels de largura
//int width;
int vColIndex = 0;//nome do cliente
TableColumn col = table.getColumnModel (). getColumn (vColIndex);
col.setPreferredWidth (250);
int vColIndex1 = 1;//endereco
TableColumn col1 = table.getColumnModel (). getColumn (vColIndex1);
col1.setPreferredWidth (300);
int vColIndex2 = 2;//cpf
TableColumn col2 = table.getColumnModel (). getColumn (vColIndex2);
col2.setPreferredWidth (80);
int vColIndex3 = 3;//cgc
TableColumn col3 = table.getColumnModel (). getColumn (vColIndex3);
col3.setPreferredWidth (100);
int vColIndex4 = 4;//coluna de nome do bairro
TableColumn col4 = table.getColumnModel (). getColumn (vColIndex4);
col4.setPreferredWidth (200);
int vColIndex5 = 5;//cep
TableColumn col5 = table.getColumnModel (). getColumn (vColIndex5);
col5.setPreferredWidth (70);
int vColIndex6 = 6;//telefone
TableColumn col6 = table.getColumnModel (). getColumn (vColIndex6);
col6.setPreferredWidth (70);
js = new JScrollPane(table);
js.setBounds(50, 80, 700, 400);
cp.add(js);
Arquivo = new JFileChooser(".");
L1 = new JLabel(" NSA");
js = new JScrollPane(L1);
js.setBounds(20, 20, 33, 25);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
cp.add(js);
Txt2 = new JTextField();//referente ao NSA
Txt2.addActionListener(this);
js = new JScrollPane(Txt2);
js.setBounds(60, 20, 170, 25);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
cp.add(js);
L2 = new JLabel(" Caminho dos dados");
js = new JScrollPane(L2);
js.setBounds(250, 20, 120, 25);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
cp.add(js);
Txt1 = new JTextField();//referente ao caminho de dados
js = new JScrollPane(Txt1);
Txt1.addActionListener(this);
js.setBounds(380, 20, 250, 25);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
cp.add(js);
CmdC = new JButton("...");
CmdC.setBounds(640, 20, 25, 25);
CmdC.addActionListener(this);
cp.add(CmdC);
CmdConsultar = new JButton("Consultar");
CmdConsultar.setBounds(680, 20, 90, 25);
CmdConsultar.addActionListener(this);
cp.add(CmdConsultar);
CmdGerar = new JButton("Gerar");
CmdGerar.setBounds(600, 500, 70, 25);
CmdGerar.addActionListener(this);
cp.add(CmdGerar);
L3 = new JLabel(" Total de Clientes");
js = new JScrollPane(L3);
js.setBounds(50, 500, 105, 25);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
cp.add(js);
//para receber o resultado da soma de numero de clientes
Txt3 = new JTextField();
js = new JScrollPane(Txt3);
js.setBounds(160, 500, 100, 25);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
cp.add(js);
TxtArquivo = new JTextArea();
TxtArquivo.setVisible(false);
js = new JScrollPane(TxtArquivo);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
//js.setBounds(50, 80, 700, 400);
cp.add(js);
L4 = new JLabel(" Total de Debitos");
js = new JScrollPane(L4);
js.setBounds(310, 500, 100, 25);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
cp.add(js);
//para receber o valor total de debitos dos clientes
Txt4 = new JTextField();
js = new JScrollPane(Txt4);
js.setBounds(420, 500, 100, 25);
js.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
cp.add(js);
CmdSair = new JButton("Sair");
CmdSair.setBounds(680, 500, 70, 25);
CmdSair.addActionListener(this);
cp.add(CmdSair);
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == CmdConsultar) {
CmdConsultar = NovoRecebeBanco.main(null);
}
if (e.getSource() == CmdC) {
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setLocation(0, 0);
// Esta linha alinha o JFileChooser no centro
int returnVal = chooser.showSaveDialog(this);
// INICIO - ALTERACAO
if (returnVal == JFileChooser.APPROVE_OPTION) {
Txt1.setText(chooser.getSelectedFile().getAbsolutePath());
}
// FIM - ALTERACAO
}
if (e.getSource() == CmdGerar) {
// INICIO - ALTERACAO
if (Txt1.getText().trim().equals("")) {
JOptionPane.showMessageDialog(null, "Digite o local onde voce quer salvar o arquivo");
return;
}
if (Txt2.getText().trim().equals("")) {
JOptionPane.showMessageDialog(null, "Digite um nome para gerar o arquivo");
return;
} else {
String arq = Txt1.getText();
if (!arq.endsWith(File.separator)) {
arq += File.separator;
}
arq += Txt2.getText();
try {
salvar(arq, TxtArquivo.getText());
JOptionPane.showMessageDialog(null, "Arquivo salvo com sucesso!");
} catch (IOException ioe) {
JOptionPane.showMessageDialog(null, "Não foi possível salvar arquivo!");
}
// }
// FIM - ALTERACAO
}
}
if (e.getSource() == CmdSair) {
this.dispose();
}
}
public void salvar(String nomeArq, String conteudoArq) throws IOException
{
// INICIO - ALTERACAO
PrintWriter out = new PrintWriter(new FileWriter(nomeArq));
out.print(conteudoArq);
out.close();
// FIM - ALTERACAO
}
public static void main(String args[])
{
Test app = new Test();
app.show();
}
} [/code]
:?: