Gå til innhold

Anbefalte innlegg

Jeg har prøvd å få disse filene over til en. Noe læreren laget i forrige time, men jeg syns det er enklere å få oversikt når alt er i en fil. Har vel stort sett bare kopiert over. Hvorfor virker det ikke når jeg har sutte alt i en fil?

 

Her er de 5 filene:

 

public class Program {

/**
 * @param args
 */
public static void main(String[] args) {
 Control c=new Control();
}

}

 

 

import java.awt.BorderLayout;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;


public class View extends JFrame {

private JTextArea jta=new JTextArea();

JMenuItem jmi_Endre=new JMenuItem("Endre");

//Constructor
public View(){
 lagMeny();
 this.getContentPane().add(jta,BorderLayout.CENTER);
 
 //hindre minnelekasje fordi programmet startes mange ganger
 this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}//end constructor
private void lagMeny() {
 JMenuBar jmb=new JMenuBar();
 JMenu jm_Fil=new JMenu("Fil");
 jm_Fil.add(jmi_Endre);
 jmb.add(jm_Fil);
 this.setJMenuBar(jmb);
}
/**
 * Kobl alle kilder til hendelser til ekstern controll
 * @param al det objektet som skal håndtere hendelser
 */
public void addLyttere(ActionListener al){
 //koble lytteren til mentitems
 jmi_Endre.addActionListener(al);
}
/**
 * Denne metoden kan brukes av andre for å bestemme hva som skal
 * være av tekst i tekstområdet
 * @param s Tekst som skal legges i tekstområdet
 */
public void setTextICenter(String s){
 jta.setText(s);
}
}//end main

 

 

import java.util.ArrayList;


public class Model {
//ArrayList<Fasong> al=new ArrayList<Fasong>();

}

 

 

 

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


public class Control implements ActionListener{
Model m=new Model();
View v=new View();
//constructor
public Control(){
 v.setTitle("MVC eksempel");
 v.setSize(300,300);
 v.setLocation(100,100);
 v.addLyttere(this);
 v.setVisible(true);
}//end constructor
public void actionPerformed(ActionEvent evt){
 String command=evt.getActionCommand();
 if (command.equals("Endre")){
 	v.setTextICenter("Nå er vi ferdig med å behandel Fil");
 }
}

}//end main

 

 

 

public interface Fasong {

}

 

 

 

Her er det jeg har sutte sammen:

(Er hverfall noe galt med klammene..)

 

Klikk for å se/fjerne innholdet nedenfor

 

 

import javax.swing.*;

 

import java.awt.BorderLayout;

import java.awt.event.ActionListener;

 

import javax.swing.JFrame;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JTextArea;

 

import java.util.ArrayList;

 

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

 

 

 

 

public class Program {

 

/**

* @param args

*/

public static void main(String[] args) {

Control c=new Control();

 

 

}

 

}

 

 

 

 

public class Model {

//ArrayList<Fasong> al=new ArrayList<Fasong>();

 

}

 

 

 

 

public interface Fasong {

 

}

 

 

 

public class Control implements ActionListener{

Model m=new Model();

View v=new View();

//constructor

public Control(){

v.setTitle("MVC eksempel");

v.setSize(300,300);

v.setLocation(100,100);

v.addLyttere(this);

v.setVisible(true);

}//end constructor

public void actionPerformed(ActionEvent evt){

String command=evt.getActionCommand();

if (command.equals("Endre")){

v.setTextICenter("Nå er vi ferdig med å behandel Fil");

}

}

 

}//end main

 

 

 

 

 

 

public class View extends JFrame {

 

private JTextArea jta=new JTextArea();

 

JMenuItem jmi_Endre=new JMenuItem("Endre");

 

//Constructor

public View(){

lagMeny();

this.getContentPane().add(jta,BorderLayout.CENTER);

 

//hindre minnelekasje fordi programmet startes mange ganger

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

}//end constructor

private void lagMeny() {

JMenuBar jmb=new JMenuBar();

JMenu jm_Fil=new JMenu("Fil");

jm_Fil.add(jmi_Endre);

jmb.add(jm_Fil);

this.setJMenuBar(jmb);

}

/**

* Kobl alle kilder til hendelser til ekstern controll

* @param al det objektet som skal håndtere hendelser

*/

public void addLyttere(ActionListener al){

//koble lytteren til mentitems

jmi_Endre.addActionListener(al);

}

/**

* Denne metoden kan brukes av andre for å bestemme hva som skal

* være av tekst i tekstområdet

* @param s Tekst som skal legges i tekstområdet

*/

public void setTextICenter(String s){

jta.setText(s);

}

}//end main

 

Lenke til kommentar
Videoannonse
Annonse

etter en veldig rask gjennomlesning ser jeg ihvertfall en åpenlys ting, du bruker :

 

public class KLASSENAVN

 

hele veien,

ved bruk av "public" må fila hete KLASSENAVN.java, så ett tips hvis du vil ha alt dette i en fil er jo da naturligvis å kalle fila opp etter din "hovedklasse" og fjerne "public" foran alle andre klasser...

 

 

og en liten ting til, hvis du har alt dette i en fil så husk at du legger alle "import" setninger øverst i den fila og ingen duplikater av disse.

Endret av magikern
Lenke til kommentar
Er eg heilt på jordet om eg seier at det ikkje kan vere fleire public klassar i ein fil? Leste det i ei bok.

8195087[/snapback]

 

Kan være x antall i samme fil, men de blir uansett delt når de blir compilert.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...