Just nu i M3-nätverket
Gå till innehåll

Java grafik


Anna20

Rekommendera Poster

Hej!

Har gjort en enkel java applikation med grafik där man kan fylla i namn och email så det sparas i en vector och det fungerar bra. Problemet är att jag har suttit och försökt skapa en vidare knapp som går vidare till en annan JPanel, men vet inte riktigt hur man gör..Finns det någon som kan hjälpa mig skulle jag vara väldigt tacksam!

 

Koden ser ut så här;

 

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.util.Vector;

 

/**

* Klassen MailLista innehåller ett grafiskt gränssnitt som visar

* registrering av namn och email adresser.

*

*/

public class MailLista extends JPanel implements ActionListener {

 

private JFrame frame;

private JLabel question, namn, email;

private JTextField namnTF, emailTF;

private JList namnLista;

private JList emailLista;

private JButton sparaKnapp;

private JButton visaKnapp;

private MailListaVector mailListaVector;

 

 

 

JPanel resultatPanel = new JPanel();

 

public static void main(String[] args) throws Exception {

MailLista mailLista = new MailLista();

 

}

 

public void actionPerformed(ActionEvent e) {

if (e.getSource().equals(sparaKnapp)) {

System.out.println("sparaKnapp nedtryckt!");

String ifylltNamn = namnTF.getText();

String ifylldEmail = emailTF.getText();

mailListaVector.addEntry(ifylltNamn, ifylldEmail);

System.out.println("Sparat!");

}

 

else

if (e.getSource().equals(visaKnapp)) {

System.out.println("visaKnapp nedtryckt!");

visaResultat(mailListaVector.getNamnVector(), mailListaVector.getEmailVector());

System.out.println("Hämtat uppgifter och visar!");

}

 

}

 

 

public MailLista() {

mailListaVector = new MailListaVector();

fillPanel();

frame = new JFrame();

frame.setContentPane(this);

frame.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

frame.setLocation(100,100);

frame.pack();

frame.setVisible(true);

}

 

/**

* fillPanel fyller panelen med de grafiska komponenter som krävs

*

*/

private void fillPanel() {

question = new JLabel("

namn = new JLabel("Namn");

email = new JLabel("Email");

namnTF = new JTextField(15);

emailTF = new JTextField(15);

 

sparaKnapp = new JButton("Spara");

 

visaKnapp = new JButton("Nästa");

 

namnLista = new JList();

emailLista = new JList();

 

setLayout(new GridBagLayout());

GridBagConstraints gbc = new GridBagConstraints();

 

gbc.insets = new Insets(0,0,0,2);

gbc.anchor = GridBagConstraints.EAST;

gbc.gridy = 0;

gbc.gridwidth = 1;

add(namn, gbc);

 

gbc.gridx = 0

 

gbc.gridx = 1;

add(namnTF, gbc);

 

gbc.gridy=1;

gbc.gridx = 0;

add(email, gbc);

 

gbc.gridx = 1;

add(emailTF, gbc);

 

gbc.gridy = 2;

gbc.gridx = 0;

add(sparaKnapp, gbc);

sparaKnapp.addActionListener(this);

 

gbc.gridy = 2;

gbc.gridx = 1;

add(visaKnapp, gbc);

visaKnapp.addActionListener(this);

 

gbc.gridy = 3;

gbc.gridx = 0;

gbc.gridwidth = 2;

add(resultatPanel, gbc);

 

}

 

/**

* visaResultat tar som argument en Vector bestående av namn och

* en Vector bestående av email adresser.

* Metoden ser sedan till så att alla anmälda visas i samma fönster.

* Metoden är komplett.

*/

public void visaResultat(Vector namnVector, Vector emailVector) {

resultatPanel.removeAll();

resultatPanel.setLayout(new GridBagLayout());

GridBagConstraints gbc = new GridBagConstraints();

gbc.anchor = GridBagConstraints.WEST;

gbc.ipadx = 5;

gbc.ipady = 2;

gbc.gridx = 0;

gbc.gridy = 0;

resultatPanel.add(new JLabel("Namn"), gbc);

gbc.gridx=1;

resultatPanel.add(new JLabel("Email"), gbc);

int y=1;

for (int i=0; i<namnVector.size(); i++) {

gbc.gridx = 0;

gbc.gridy = y;

JLabel namnLabel = new JLabel((String)namnVector.elementAt(i));

JLabel emailLabel = new JLabel((String)emailVector.elementAt(i));

resultatPanel.add(namnLabel, gbc);

gbc.gridx = 1;

resultatPanel.add(emailLabel, gbc);

y++;

}

frame.pack();

}

 

}

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...