PelleP Skrevet 26. november 2009 Del Skrevet 26. november 2009 (endret) Jeg har en applet med en JButton, JTextField og JTextArea. Jeg vil legge til et bilde, men får det ikke til. Jeg har lest litt om bilder forskjellge steder, men har ikke klart å finne ut av det. Er det noen som har noen tips? import java.util.Random; import java.util.Random; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class GangetestApplet extends JApplet implements ActionListener{ JButton start; JTextField textfield; JTextArea textarea; Container Panel; LayoutManager Layout; public GangetestApplet(){ start = new JButton("Start"); textfield = new JTextField(20); textarea = new JTextArea(15,20); Layout = new FlowLayout(); Panel = getContentPane(); start.addActionListener(this); textarea.setEditable(false); Panel.setLayout (Layout); Panel.add(start); Panel.add(textfield); Panel.add(textarea); Panel.setBackground (Color.green); } public void actionPerformed(ActionEvent e){ new Gangetest(textfield, textarea); } } class Gangetest implements ActionListener{ int x, y, svar, riktig; int delay = 30000; Random r; Timer timer; ActionListener listener; JTextField textfield; JTextArea textarea; String string1, string2; Gangetest(JTextField textfield, JTextArea textarea){ this.textfield = textfield; this.textarea = textarea; textfield.setText(""); textarea.setText(""); timer = new Timer(delay,listener); timer.addActionListener(this); textfield.addActionListener(this); r = new Random(); timer.restart(); gangetest(0,0); } public void gangetest(int xx, int yy){ do{ x = tilfeldigHeltall(); }while(x == xx); do{ y = tilfeldigHeltall(); }while(y == yy); textfield.setText(" " + x + " * " + y + " = "); string1 = textfield.getText();; textfield.grabFocus(); //textfield.setEditable(true);//Virker ikke } public int tilfeldigHeltall(){ int t = r.nextInt(8)+2; return t; } public void actionPerformed(ActionEvent e){ if(e.getSource()== timer){ timer.stop(); textarea.append("\nDu hadde " + riktig + " riktige"); }else if(timer.isRunning()){ String reply; string2 = textfield.getText(); textarea.append(string2); reply = string2.substring(string1.length()); if(x * y == Integer.parseInt(reply)){ textarea.append(" RIKTIG!\n"); riktig++; gangetest(x,y); }else{ textarea.append(" FEIL!\n"); textfield.setText(string1);//Brukeren må gi riktig svar på hvert regnestykke! } //textfield.setEditable(false);//Virker ikke } } } } Jeg hadde vist lagt inn feil kode, nå er det rettet. Koden ovenfor fungerer etter hensikten, men så vil jeg som sagt få lagt inn et bilde. Endret 26. november 2009 av PelleP Lenke til kommentar
norpheus Skrevet 27. november 2009 Del Skrevet 27. november 2009 Mulig første treff på google kan være verdt en titt? http://java.ittoolbox.com/documents/displa...in-jpanel-12876 Lenke til kommentar
PelleP Skrevet 27. november 2009 Forfatter Del Skrevet 27. november 2009 (endret) Mulig første treff på google kan være verdt en titt?http://java.ittoolbox.com/documents/displa...in-jpanel-12876 Som sagt så har jeg søkt på og lest en del på nettet allerede, i tillegg til at jeg har lest i de to bøkene jeg har. Jeg har brukt bilder i applikasjoner før og fått det til å fungere. Det er heller ikke vanskelig å lage en applet som viser et bilde. Jeg har imidlertid ikke funnet noe eksempel på en applet hvor bilder blir kombinert med andre objekter. Såvidt jeg forstår så benyttes det andre metoder i appleter enn i appllkasjoner? Jeg regner med at jeg må tegne bildet i en beholder av et elle annet slag og så legge beholderen i Appleten. Jeg har forsøkt på forskjellige måter, men får det ikke til. Veldig takknæmlig om noen kan gi meg et dytt i riktig retning. Endret 27. november 2009 av PelleP Lenke til kommentar
PelleP Skrevet 27. november 2009 Forfatter Del Skrevet 27. november 2009 Jeg fikk det til! Koden ligger nedenfor dersom noen skulle være interessert. import java.util.Random; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.net.URL; public class GangetestApplet extends JApplet implements ActionListener{ JButton start; JTextField textfield; JTextArea textarea; Container Panel; LayoutManager Layout; Bildepanel bildepanel; public GangetestApplet(){ start = new JButton("Start"); textfield = new JTextField(20); textarea = new JTextArea(15,20); Layout = new FlowLayout(); bildepanel = new Bildepanel(); Panel = getContentPane(); start.addActionListener(this); textarea.setEditable(false); Panel.setLayout (Layout); Panel.add(start); Panel.add(textfield); Panel.add(textarea); getContentPane().add(bildepanel); //Panel.add(bildepanel); Panel.setBackground (Color.MAGENTA); } public void actionPerformed(ActionEvent e){ new Gangetest(textfield, textarea); } } class Bildepanel extends JPanel{ private ImageIcon bilde; public Bildepanel(){ URL kilde = Bildepanel.class.getResource("Numerical.jpg"); bilde = new ImageIcon(kilde); } public void paintComponent(Graphics g){ super.paintComponent(g); if (bilde != null){ bilde.paintIcon(this, g, 0, 0); }else g.drawString( "Fant ikke bildet!", 10, 50 ); } public Dimension getPreferredSize(){ if (bilde != null) return new Dimension(bilde.getIconWidth(), bilde.getIconHeight()); else return new Dimension( 200, 100 ); } } class Gangetest implements ActionListener{ int x, y, svar, riktig; int delay = 30000; Random r; Timer timer; ActionListener listener; JTextField textfield; JTextArea textarea; String string1, string2; Gangetest(JTextField textfield, JTextArea textarea){ this.textfield = textfield; this.textarea = textarea; textfield.setText(""); textarea.setText(""); timer = new Timer(delay,listener); timer.addActionListener(this); textfield.addActionListener(this); r = new Random(); timer.restart(); gangetest(0,0); } public void gangetest(int xx, int yy){ do{ x = tilfeldigHeltall(); }while(x == xx); do{ y = tilfeldigHeltall(); }while(y == yy); textfield.setText(" " + x + " * " + y + " = "); string1 = textfield.getText();; textfield.grabFocus(); //textfield.setEditable(true);//Virker ikke } public int tilfeldigHeltall(){ int t = r.nextInt(8)+2; return t; } public void actionPerformed(ActionEvent e){ if(e.getSource()== timer){ timer.stop(); textarea.append("\nDu hadde " + riktig + " riktige"); }else if(timer.isRunning()){ String reply; string2 = textfield.getText(); textarea.append(string2); reply = string2.substring(string1.length()); if(x * y == Integer.parseInt(reply)){ textarea.append(" RIKTIG!\n"); riktig++; gangetest(x,y); }else{ textarea.append(" FEIL!\n"); textfield.setText(string1);//Brukeren må gi riktig svar på hvert regnestykke! } //textfield.setEditable(false);//Virker ikke } } } Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå