www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

[Java] Branje iz datoteke

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programska oprema
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Bela01
Neznanec
Neznanec



Pridružen-a: Sre 11 Jun 2008 15:54
Prispevkov: 2
Aktiv.: 0.01

PrispevekObjavljeno: Sre Jun 11, 2008 7:30 pm    Naslov sporočila:  [Java] Branje iz datoteke Odgovori s citatom

Sem bolj "zelena" pri programiranju, sploh pa pri javi.
Potrebovala bi pomoč pri enem programu.

Torej rada bi, da program iz datoteke prebere vrstico po vrstico in shrani to besedilo v določene spremenljivke (string). Sicer mi ne javi nobene napake ko skompajlam, vendar se applet noče zagnat. Je pa napaka v proceduri BeriIzDatoteke, ker če dam klicanje te datoteke v glavnem programu pod komentar, se applet zažene.
Torej v čem je sploh problem in ali je moja koda sploh logično nekak zapisana.


To je vsebina datoteke, ki jo želim prebrati:

"
1. Koliko meri kot v podanem trikotniku?
a) 30°
b) 60°
c) 40°
1
2. Kako imenujemo točko T?
a) Višinska točka
b) Težiščnica
c) Središče očrtanega kroga
2
3. Premici p in q sta vzporedni. Katera trditev velja?
a) kot a je enako velik kot kot b
b) kot a je enako velik kot kot d
c) kot a je enako velik kot kot c
3
"

To pa je koda programa:

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.border.*;

public class Naloga extends JApplet implements ItemListener, ActionListener {

String[] a;
String pres = " ";
//vprašanje

String[] n = new String[3];
//odgovori

String[][] o = new String[3][3];
//točke za pravilne odgovore

int[] tocke = new int[3];
//pravilni odgovor

int[] odg = new int[3];

//zaporedna številka naloge

int zap = 0;

//Labela s tekstom, nalogo in odgovorom

JLabel tekst = new JLabel("");
JLabel naloga = new JLabel("");
JLabel odgovor = new JLabel("");

private String Preveri_g = "Preveri_g";
private String Naprej_g = "Naprej_g";


//ustvarimo gumbe

JRadioButton[] rgumb = new JRadioButton[3];;
JButton preveri, naprej;

//spremenljivka za slikice

Toolkit tool = Toolkit.getDefaultToolkit();
Image slika = tool.getImage("naloga1.jpg");


//ustvarimo panelo, ki bo nosila ostale v sebi

JPanel namizje = new JPanel(new BorderLayout());
JPanel namizje1 = new JPanel(new BorderLayout());
JPanel namizje2 = new JPanel(new BorderLayout());
JPanel resitev = new JPanel(new BorderLayout());

//ostale panele

JPanel navodilo = new JPanel(new BorderLayout());
JPanel nosilna = new JPanel(new GridLayout());
JPanel odgovori = new JPanel(new GridLayout(3, 1));
JPanel primeri = new JPanel(new GridLayout());
JPanel gumbi = new JPanel(new GridLayout(1, 2));

JLabel izpis = new JLabel(" ");

//panele za applet

JPanel applet = new JPanel(new GridLayout(7,1));
JPanel naslov = new JPanel(new BorderLayout());
JPanel n_1 = new JPanel(new GridLayout(2,1));
JPanel n_2 = new JPanel(new GridLayout(2,1));
JPanel n_3 = new JPanel(new GridLayout(2,1));
JPanel nal1 = new JPanel(new GridLayout(2,2));
JPanel nal2 = new JPanel(new GridLayout(2,2));
JPanel nal3 = new JPanel(new GridLayout(2,2));

//labele za applet

JLabel nas = new JLabel("Rezultati reševanja");
JLabel tekst1 = new JLabel("Pravilen odgovor: ");
JLabel tekst2 = new JLabel("Dosežene točke: ");


public void ZgradiApplet()
{
Container app = this.getContentPane();

applet.setPreferredSize(new Dimension(500,500));
naslov.setPreferredSize(new Dimension(500,20));
n_1.setPreferredSize(new Dimension(500,60));
nal1.setPreferredSize(new Dimension(500,40));
n_2.setPreferredSize(new Dimension(500,60));
nal2.setPreferredSize(new Dimension(500,40));
n_3.setPreferredSize(new Dimension(500,60));
nal3.setPreferredSize(new Dimension(500,40));

naslov.add(nas);

nal1.add(tekst1);
nal1.add(new JLabel(o[0][0]));
nal1.add(tekst2);
nal1.add(new JLabel(String.valueOf(tocke[0])));

nal2.add(tekst1);
nal2.add(new JLabel(o[1][1]));
nal2.add(tekst2);
nal2.add(new JLabel(String.valueOf(tocke[1])));

nal3.add(tekst1);
nal3.add(new JLabel(o[2][2]));
nal3.add(tekst2);
nal3.add(new JLabel(String.valueOf(tocke[2])));


n_1.add(new JLabel(n[0]));
n_1.add(nal1);
n_2.add(new JLabel(n[1]));
n_2.add(nal2);
n_3.add(new JLabel(n[2]));
n_3.add(nal3);

applet.add(naslov);
applet.add(n_1);
applet.add(n_2);
applet.add(n_3);

app.add(applet);

}

//Panela z navodilom naloge

public JPanel NavodiloP(){

navodilo.setPreferredSize(new Dimension(350, 50));

navodilo.setBorder(
new CompoundBorder(
BorderFactory.createEmptyBorder(5, 0, 5, 0),
BorderFactory.createEtchedBorder()));

navodilo.add(new JLabel(pres), BorderLayout.WEST);
navodilo.add(naloga, BorderLayout.CENTER);

return navodilo;
}

//v grupo dodamo stikala oz. radiobuttone

void DodajStikala(){
//grupa, ki bo združila radiobutone - rgumbe, da bodo sodelovali med seboj

ButtonGroup grupa = new ButtonGroup();

//ustvarimo rgumbe z možnimi odgovori

for (int i = 0; i < 3; i++)
{
rgumb[i] = new JRadioButton(o[zap][i]);
if (i != odg[zap])
rgumb[i].setActionCommand("NE");
else
rgumb[i].setActionCommand("DA");
rgumb[i].addItemListener(this);
grupa.add(rgumb[i]);
}
}

//Panela ki vsebuje stikala

public JPanel OdgovoriP(){
DodajStikala();
odgovori.setPreferredSize(new Dimension(200, 250));

odgovori.setBorder(
new CompoundBorder(
BorderFactory.createEmptyBorder(5, 5, 5, 5),
BorderFactory.createTitledBorder(
LineBorder.createGrayLineBorder(),
"Možni odgovori")));

for (int i = 0; i < 3; i++)
{
odgovori.add(rgumb[i]);
}

return odgovori;
}

//Panela ki vsebuje slike

public JPanel PrimeriP(){

primeri.setPreferredSize(new Dimension(200, 250));

primeri.setBorder(
new CompoundBorder(
BorderFactory.createEmptyBorder(5, 5, 5, 5),
BorderFactory.createTitledBorder(
LineBorder.createGrayLineBorder(),
"Slika kot pomoč")));

Icon ikona = new ImageIcon(slika);
primeri.add(new JLabel(ikona));

return primeri;
}

//Panela ki vsebuje paneli odgovori in primeri

public JPanel NosilnaP(){

OdgovoriP();
PrimeriP();

nosilna.add(odgovori);
nosilna.add(primeri);

nosilna.setBorder(
new CompoundBorder(
BorderFactory.createEmptyBorder(5, 0, 5, 0),
BorderFactory.createEtchedBorder()));

return nosilna;
}

//panela ki vsebuje labelo s tekstom

public JPanel ResitevP(){

resitev.add(izpis);
resitev.setPreferredSize(new Dimension(350, 50));

resitev.setBorder(
new CompoundBorder(
BorderFactory.createEmptyBorder(1, 0, 1, 0),
BorderFactory.createEtchedBorder()));

resitev.add(new JLabel(pres), BorderLayout.WEST);
resitev.add(tekst, BorderLayout.CENTER);

return resitev;
}

//panela namizje1 vsebuje panele navodilo, nosilna in resitev

public JPanel Namizje1P(){

NavodiloP();
NosilnaP();
ResitevP();

namizje1.add(navodilo, BorderLayout.NORTH);
namizje1.add(nosilna, BorderLayout.CENTER);
namizje1.add(resitev, BorderLayout.SOUTH);

namizje1.setBorder(BorderFactory.createEmptyBorder(5, 5, 0, 5));

return namizje1;
}

//panela ki vsebuje gumba preveri in naprej

public JPanel GumbiP(){

gumbi.setPreferredSize(new Dimension(350, 50));

gumbi.setBorder(
new CompoundBorder(
BorderFactory.createEmptyBorder(1, 0, 1, 0),
BorderFactory.createEtchedBorder()));

//ustvarimo in vstavimo v labelo gumba preveri in naprej

preveri = new JButton("Preveri");
preveri.setActionCommand(Preveri_g);
preveri.addActionListener(this);
gumbi.add(preveri);
naprej = new JButton("Naprej");
naprej.setActionCommand(Naprej_g);
naprej.addActionListener(this);
gumbi.add(naprej);

return gumbi;
}

//panela ki vsebuje gumbe

public JPanel Namizje2P(){

GumbiP();

namizje2.add(gumbi, BorderLayout.SOUTH);

namizje2.setBorder(BorderFactory.createEmptyBorder(0, 5, 5, 5));

return namizje2;
}

//glavno namizje ki vsebuje namizje1 in namizje2

public JPanel NamizjeP(){

Namizje1P();
Namizje2P();

namizje.add(namizje1, BorderLayout.NORTH);
namizje.add(namizje2, BorderLayout.CENTER);

return namizje;
}

public void BeriIzDatoteke()
{
int i = 0;

String vrstica = null;

try
{
BufferedReader datoteka = new BufferedReader(new FileReader("datoteka.txt"));

while (datoteka.ready()) {
while ((vrstica = datoteka.readLine()) != null) {

switch (i) {
case 0: { n[zap] = vrstica; //shrani vprašanje

break;
}
case 1: { o[zap][i] = vrstica; //shrani prvi odgovor

break;
}
case 2: { o[zap][i] = vrstica; //shrani drugi odgovor

break;
}
case 3: { o[zap][i] = vrstica; //shrani tretji odgovor

break;
}
case 4: { odg[i] = Integer.parseInt(vrstica); //shrani rešitev

break;
}
}
i++;
if (i == 5)
{
i = 0;
zap++;
}
}
}
datoteka.close();

}

catch(IOException e) //če datoteka, ki smo jo klicali za branje ne obstaja

{
//System.out.println("Datoteka ne obstaja!");

}

}

//glavni program okna

public void main(String[] args) {

//BeriIzDatoteke();


//oblikujemo applet


//ustvarimo okno

JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame("Reševanje nalog");
Naloga app = new Naloga();

ZgradiApplet();

// uporabimo drsno površino v primeru premajhnega okna

JScrollPane pane = new JScrollPane(app.NamizjeP());
pane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
pane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);

frame.getContentPane().add(pane, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);

}

//glavni program appleta

public void init() {

Container okno_App = this.getContentPane();


main(a);
}

//metoda, ki ugotavlja stanje stikal

public void itemStateChanged(ItemEvent event) {

tekst.setText("");

}

//metoda ki ugotovi stanje gumbov

public void actionPerformed(ActionEvent event) {

if (event.getActionCommand().equals(Preveri_g))
if (rgumb[odg[zap]].isSelected())
tekst.setText("Odgovor je pravilen!");
else
tekst.setText("Odgovor ni pravilen!");


if (event.getActionCommand().equals(Naprej_g))
if (zap < 3)
{
zap++;
naloga.setText(n[zap]);

}
else
{
zap = 0;
System.exit(0);

}

}
}
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Bela01
Neznanec
Neznanec



Pridružen-a: Sre 11 Jun 2008 15:54
Prispevkov: 2
Aktiv.: 0.01

PrispevekObjavljeno: Sre Jun 11, 2008 7:52 pm    Naslov sporočila:   Odgovori s citatom

Težavo so mi že odpravili na http://slo-tech.com/script/forum/izpisitemo.php?threadID=183789 forumu.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programska oprema Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 9 dni


Powered by phpBB © 2001, 2005 phpBB Group