Hei!
Toivoisin seuraavaan tehtävään apua, yritin ratkaista itse mutta haaveeksi jäi.
Tehtävässä pitäisi tehdä 5 Labelia ja 4 Textfieldiä sekä 5 Buttonia.
1 Label(etunimi), 1 TextField
2 Label(sukunimi), 2 TextField
3 Label(ikä), 3 TextField
4 Label(palkka), 4 TextField
Button1(alkuun), 5 Label
Button2(edellinen), Button3(seuraava)
Button4(lisää), Button5(poista)
Tehtävänä on, että kun käyttäjä painaa "lisää"-painiketta, kentät tyhjennetään ja painikkeen "lisää" nimeksi
tulee "tallenna".
Kun käyttäjä syöttää tiedot ja painaa "tallenna" -painiketta, tiedot tallentuvat muistiin ja painikkeen tekstiksi tulee "lisää".
Mikäli ikä ja palkka eivät ole kokonaislukuja, antaa ohjelma virheilmoituksen.
Kun käyttäjä painaa "alkuun"-painiketta, näytetään ensimmäisen syötetyn henkilön tiedot. Käyttäjä voi käyttää "seuraava" ja "edellinen" -painiketta selatakseen syötettyjen henkilöiden tietoja.
Käyttäjä voi myös poistaa sillä hetkellä valitun henkilön tiedot painamalla "poista"-painiketta. Tämän jälkeen näytetään ensimmäinen henkilö.
Henkilöitä varten pitäisi tehdä HenkiloOv -luokka, joka kuvaa aina yhtä henkilöä
- luokassa on muuttujat kaikille tiedoille
- muuttujille on aksessorit
Appletissa pitäisi käyttää vektoria pitämään sisällään syötetyt henkilöt
Omat kokonaisuudet omiin metodeihin ja pitäisi käyttää jotain indeksimuuttujaa, jolla ohjelma tietää koko ajan missä henkilössä mennään. Oikeellisuuden tarkistaminen try - catch -lohkoa käyttäen.
Käyttäjä saa toimistaan ohjeita tai palautetta Label5:ssä (syötä tiedot, tarkista tiedot, tiedot poistettu)
Tehtävässä olen ihan alkutekijöissä, eli olen saanut lisättyä applettiin nuo painikkeet, labelit ja textfieldit, mutta enempää en sitten osaakaan.
Toivoisin seuraavaan tehtävään apua, yritin ratkaista itse mutta haaveeksi jäi.
Tehtävässä pitäisi tehdä 5 Labelia ja 4 Textfieldiä sekä 5 Buttonia.
1 Label(etunimi), 1 TextField
2 Label(sukunimi), 2 TextField
3 Label(ikä), 3 TextField
4 Label(palkka), 4 TextField
Button1(alkuun), 5 Label
Button2(edellinen), Button3(seuraava)
Button4(lisää), Button5(poista)
Tehtävänä on, että kun käyttäjä painaa "lisää"-painiketta, kentät tyhjennetään ja painikkeen "lisää" nimeksi
tulee "tallenna".
Kun käyttäjä syöttää tiedot ja painaa "tallenna" -painiketta, tiedot tallentuvat muistiin ja painikkeen tekstiksi tulee "lisää".
Mikäli ikä ja palkka eivät ole kokonaislukuja, antaa ohjelma virheilmoituksen.
Kun käyttäjä painaa "alkuun"-painiketta, näytetään ensimmäisen syötetyn henkilön tiedot. Käyttäjä voi käyttää "seuraava" ja "edellinen" -painiketta selatakseen syötettyjen henkilöiden tietoja.
Käyttäjä voi myös poistaa sillä hetkellä valitun henkilön tiedot painamalla "poista"-painiketta. Tämän jälkeen näytetään ensimmäinen henkilö.
Henkilöitä varten pitäisi tehdä HenkiloOv -luokka, joka kuvaa aina yhtä henkilöä
- luokassa on muuttujat kaikille tiedoille
- muuttujille on aksessorit
Appletissa pitäisi käyttää vektoria pitämään sisällään syötetyt henkilöt
Omat kokonaisuudet omiin metodeihin ja pitäisi käyttää jotain indeksimuuttujaa, jolla ohjelma tietää koko ajan missä henkilössä mennään. Oikeellisuuden tarkistaminen try - catch -lohkoa käyttäen.
Käyttäjä saa toimistaan ohjeita tai palautetta Label5:ssä (syötä tiedot, tarkista tiedot, tiedot poistettu)
Tehtävässä olen ihan alkutekijöissä, eli olen saanut lisättyä applettiin nuo painikkeet, labelit ja textfieldit, mutta enempää en sitten osaakaan.
Vastaukset 3
Vanhimmat
package suomi24;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Vector;
/**
* Title:
* Description:
* Copyright: Copyright (c) 2003
* Company:
* @author not attributable
* @version 1.0
*/
public class PalkkaFrame extends JFrame {
private Vector data = new Vector();
private PersonData current = null; //liputtaa moden
private int currelement =-1;
JPanel contentPane;
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton4 = new JButton();
JTextField jTextField1 = new JTextField();
JTextField jTextField2 = new JTextField();
JTextField jTextField3 = new JTextField();
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
JTextField jTextField4 = new JTextField();
JLabel jLabel4 = new JLabel();
JButton jButton3 = new JButton();
JButton jButton5 = new JButton();
//Construct the frame
public PalkkaFrame() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void validate(String first, String last,String age,String salary){
String error = "";
int iage=-1;double dSalary=-1.0;
try{ iage = Integer.parseInt(age);}catch(Exception ex){error = "Ikä on oltava luku";}
try{dSalary =Double.parseDouble(salary);}catch(Exception ex){
error = error " palkan on oltava luku";}
if(error.length() >0){
javax.swing.JOptionPane.showMessageDialog(this,error,"Error",JOptionPane.ERROR_MESSAGE);
}else{
current = new PersonData(first,last,iage,dSalary);
this.jTextField1.setText("");
this.jTextField2.setText("");
this.jTextField3.setText("");
this.jTextField4.setText("");
this.jButton4.setText("Talleta");
}
int size = this.data.size();
for(int i =0;i0){
PersonData values = (PersonData)data.elementAt(index);
if(values != null){
this.jTextField1.setText(values.firstname);
this.jTextField2.setText(values.surename);
this.jTextField3.setText("" values.age);
this.jTextField4.setText("" values.salary);
}else{
this.jTextField1.setText("");
this.jTextField2.setText("");
this.jTextField3.setText("");
this.jTextField4.setText("");
}
}
}
//Component initialization
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
jButton1.setBounds(new Rectangle(21, 257, 80, 30));
jButton1.setText("Alkuun");
jButton1.addActionListener(new PalkkaFrame_jButton1_actionAdapter(this));
contentPane.setLayout(null);
this.setSize(new Dimension(400, 300));
this.setTitle("suomi24_fi javaapuja");
jButton2.setBounds(new Rectangle(124, 215, 80, 30));
jButton2.setText("Edellinen");
jButton2.addActionListener(new PalkkaFrame_jButton2_actionAdapter(this));
jButton4.setBounds(new Rectangle(227, 215, 80, 30));
jButton4.setText("Lisää");
jButton4.addActionListener(new PalkkaFrame_jButton4_actionAdapter(this));
//jTextField1.setText("jTextField1");
jTextField1.setBounds(new Rectangle(201, 18, 178, 33));
//jTextField2.setText("jTextField2");
jTextField2.setBounds(new Rectangle(201, 66, 178, 33));
//jTextField3.setText("jTextField3");
jTextField3.setBounds(new Rectangle(201, 115, 178, 33));
jLabel1.setText("Etunimi");
jLabel1.setBounds(new Rectangle(93, 23, 85, 23));
jLabel2.setText("Sukunimi");
jLabel2.setBounds(new Rectangle(93, 71, 85, 23));
jLabel3.setText("Ikä");
jLabel3.setBounds(new Rectangle(93, 120, 85, 23));
//jTextField4.setText("jTextField4");
jTextField4.setBounds(new Rectangle(201, 163, 178, 33));
jLabel4.setText("Palkka");
jLabel4.setBounds(new Rectangle(93, 168, 85, 23));
jButton3.setBounds(new Rectangle(124, 257, 80, 30));
jButton3.setText("Seuraava");
jButton3.addActionListener(new PalkkaFrame_jButton3_actionAdapter(this));
jButton5.setBounds(new Rectangle(227, 257, 80, 30));
jButton5.setText("Poista");
jButton5.addActionListener(new PalkkaFrame_jButton5_actionAdapter(this));
contentPane.add(jTextField1, null);
contentPane.add(jTextField2, null);
contentPane.add(jTextField3, null);
contentPane.add(jTextField4, null);
contentPane.add(jLabel1, null);
contentPane.add(jLabel2, null);
contentPane.add(jLabel3, null);
contentPane.add(jLabel4, null);
contentPane.add(jButton1, null);
contentPane.add(jButton2, null);
contentPane.add(jButton3, null);
contentPane.add(jButton4, null);
contentPane.add(jButton5, null);
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
void jButton5_actionPerformed(ActionEvent e) {
if(this.currelement > 0)
this.data.remove(this.currelement);
}
void jButton4_actionPerformed(ActionEvent e) {
if(this.current ==null){
String n1=this.jTextField1.getText();
String n2= this.jTextField2.getText();
String age = this.jTextField3.getText();
String salary = this.jTextField4.getText();
this.validate(n1,n2,age,salary);
}else{
if(this.currelement ==-1)
this.data.addElement(current);
else
this.data.setElementAt(current,currelement);
this.jButton4.setText("Lisää");
current = null;
currelement=-1;
}
}
void jButton1_actionPerformed(ActionEvent e) {
this.getValuesFromData(0);
this.currelement =0;
}
void jButton2_actionPerformed(ActionEvent e) {
// int index =this.data.indexOf(current);
// if(index >0)
// this.getValuesFromData(--index);
if(this.currelement > 0)
this.getValuesFromData(--this.currelement);
else if(this.currelement==-1 && this.data.size() >0) {
this.currelement =this.data.size();
this.getValuesFromData(--this.currelement);
}
}
void jButton3_actionPerformed(ActionEvent e) {
// int index = this.data.indexOf(current);
// if(index
Kiitos vain sinulle "oho". Eikö tuota
pystyisi tekemään vähemmällä koodaamisella?
En vaan jaksa. Jos tuossa ei ollut kylliski apuja, että saat itse tehtäväsi ratkaistua, niin ei voi mitään.
En viitsi itse gui:ta käsin koodata, siksi käytän gui-työkalua, se tekee koodista pitkän, mutta ongelmanratkaisun pääpiirteet ei muutu miksikään, käytät mitä tahansa kehitystyökalua...
Poimi koodista oleellinen ja yhdistä se lykyempään gui-koodiin.