ok... mas é um bocado.. tipo vou tentar explicar o programa.. e por aki o enunciado do problema..
Trabalho
Pretende-se que construas um programa em Java que deverá ter o seguinte aspecto:
A constituição do Menu 1 e do Menu 2 é a seguinte:
Nenhum dos itens do menu terá acção.
O objecto Livros tem as seguintes propriedades: id_livro, nome_livro e assunto. Os elementos adicionados na JList foram adicionados manualmente e não usando a Base de Dados.
No layout é possível ver 3 botões:
a) Botão inserir. Quando clicamos neste botão irá surgir uma nova janela com o seguinte aspecto:
Após inserir os dados, carregamos no botão gravar que terá 2 acções: adicionar um novo livro ao vector e por fim fechar esta janela.
b) Botão apagar. Após clicarmos no botão apagar, deverá apagar do vector o elemento seleccionado e actualizar a JList.
c) Botão editar. Após clicarmos no botão editar, deverá surgir uma nova janela, e nas caixas de texto deverão ficar os valores do objecto seleccionado. Quando carregamos no botão gravar deverá actualizar os parâmetros do objecto bem como fechar a janela.
O Programa deverá estar muito bem estruturado e deverá obedecer ás seguintes regras:
a) No construtor da classe Main deverá ter o seguinte código:
public Main() {
super("Teste de Recuperação");
setupActions();
setupMenu();
setupLayout();
addElementsPanel();
setSize(450,300);
setVisible(true);
}
b) No método setupActions(); serão definidas todas as acções dos componentes do programa;
c) No método setupMenu(); será definido o menu;
d) No método setupLayout(); serão definidos os layouts das frames e dos painéis;
e) No método addElementsPanel(); adicionamos os diversos componentes aos painéis e/ou ás frames.
sorry mas nao consegui por as imagens..
e agora ponho o meu Main..
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.ListModel;
public class Main extends JFrame {
private JList list = new JList();
private JButton insert = new JButton("Inserir");
private JButton erase = new JButton("Apagar");
private JButton edit = new JButton("Editar");
private JMenuBar bar = new JMenuBar();
private JMenu menu1 = new JMenu("Menu 1");
private JMenu menu2 = new JMenu("Menu 2");
private JPanel panel = new JPanel();
private static Vector<livro> temp = new Vector<livro
);
public Main() {
super("Livraria");
setupActions();
setupMenu();
setupLayout();
addElementsPanel();
setSize(450,300);
setVisible(true);
}
private void addElementsPanel() {
panel.setLayout(new GridLayout(3, 1));
panel.add(insert);
panel.add(erase);
panel.add(edit);
}
private void setupLayout() {
setLayout(new BorderLayout());
add(bar, BorderLayout.PAGE_START);
add(list, BorderLayout.WEST);
add(panel, BorderLayout.EAST);
panel.setPreferredSize(new Dimension(221, 100));
list.setPreferredSize(new Dimension(221, 300));
}
private void setupMenu() {
bar.add(menu1);
bar.add(menu2);
menu1.add(new JMenuItem("Item 1"));
menu1.add(new JMenuItem("Item 2"));
menu2.add(new JMenuItem("Help"));
}
private void setupActions() {
list = new JList(preenche());
insert.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
new insert();
}
});
}
private void salvar(livro abc) {
temp.addElement(abc);
list = new JList(temp);
}
private Vector<livro> preenche() {
temp.addElement(new livro(1, "Livro1", "?"));
temp.addElement(new livro(2, "Livro2", "??"));
temp.addElement(new livro(3, "Livro 3", "???"));
return temp;
}
public static void main(String[] args) {
new Main();
}
}
a classe dos livros...
public class livro {
private int id_livro;
private String nome_livro;
private String assunto;
public livro(int id_livro, String livro, String assunto) {
super();
this.id_livro = id_livro;
this.nome_livro = livro;
this.assunto = assunto;
}
public int getId_livro() {
return id_livro;
}
public void setId_livro(int id_livro) {
this.id_livro = id_livro;
}
public String getLivro() {
return nome_livro;
}
public void setLivro(String livro) {
this.nome_livro = livro;
}
public String getAssunto() {
return assunto;
}
public void setAssunto(String assunto) {
this.assunto = assunto;
}
public String toString() {
return "Nome: "+ nome_livro;
}
}
e a k abre a 2 janela(ou seja kuando carrego no inserir)
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JPopupMenu.Separator;
import javax.swing.plaf.SeparatorUI;
public class insert extends JFrame{
JTextField txt1 = new JTextField();
JTextField txt2 = new JTextField();
JTextField txt3 = new JTextField();
JButton bt = new JButton("Gravar");
public insert(){
super("Inserir Livros");
setBounds(300, 300, 450, 250);
setLayout(new GridLayout(4, 2));
add(new JLabel("Número do Livro:"));
add(txt1);
add(new JLabel("Nome do Livro:"));
add(txt2);
add(new JLabel("Assunto do Livro:"));
add(txt3);
add(new JLabel());
add(bt);
setupActions();
setVisible(true);
}
private void setupActions() {
bt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
livro tmp = new livro(Integer.parseInt(txt1.getText()), txt2.getText(), txt3.getText());
salvar(tmp);//este comando da erro.. pois estou tentanto mandar a variavel para a outra classe e era isto que queria resolver..
dispose();
}
});
}
peço desculpa se esta confuso... :/
}