ti-guru Skrevet 10. mars 2004 Del Skrevet 10. mars 2004 emnebeskrivelsen sier det meste tror jeg. har ikke helt skjønt det kryptisk som står i API'en. Foreleseren min gidder ikke svare på mail om hvordan man gjør dette siden det ikke er pensum tydeligvis. Lenke til kommentar
Vial Skrevet 10. mars 2004 Del Skrevet 10. mars 2004 Her er et lite program jeg ikke har kompilert og testet (av åpenbare grunner (noen poster nedenfor)) - men burde funke bra, demonstrerer online applet. import java.awt.*; import java.awt.event.*; import javax.swing.*; // import java.applet.* for stygge komponenter public class Testprogram extends JApplet { private JButton button = new JButton("Klikk her"); private JLabel label = new JLabel(""); private int teller = 0; void init() // main metoden til online applets { button.addActionListener(new ButtonListener()); // lytter til knappen Container cp = getContentPane(); // container for appleten cp.setLayout(new FlowLayout()); cp.add(button); cp.add(label); setSize(300,35); } // så trenger vi en knappelytter private class ButtonListener implements ActionListener { public void actionPerformed(ActionEvent event) { teller++; label.setText(Integer.toString(teller)); repaint(); // valgfri } } } Det burde funke. Går også ann med main metode. Største forskjellen er at basic filbehandling ikke fungerer. Lenke til kommentar
Vial Skrevet 10. mars 2004 Del Skrevet 10. mars 2004 aaah, føler meg i det konstruktive hjørnet idag. Her er eksempel på applet med main metode: Main metode brukes hovedsakelig (av meg iallfall ) for å kombinere flere paneler enkelt. Dette finner du ut av selv... On to the codage: (og jau - eksempelet kommer fra Java Software Solutions v.3) // Dots.java public class Dots { public static void main(String[] args) { JFrame dotsFrame = new JFrame("Dots"); dotsFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); dotsFrame.getContentPane().add(new DotsPanel()); dotsFrame.pack(); dotsFrame.show(); } } // Så enkelt var det.... // Men la oss fixe DotsPanel // DotsPanel.java mport javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; public class DotsPanel extends JPanel { private final int WIDTH = 300, HEIGHT = 200; private final int RADIUS = 6; private ArrayList pointList; private int count; //----------------------------------------------------------------- // Sets up this panel to listen for mouse events. //----------------------------------------------------------------- public DotsPanel() { pointList = new ArrayList(); count = 0; addMouseListener (new DotsListener()); setBackground (Color.black); setPreferredSize (new Dimension(WIDTH, HEIGHT)); } //----------------------------------------------------------------- // Draws all of the dots stored in the list. //----------------------------------------------------------------- public void paintComponent (Graphics page) { super.paintComponent(page); page.setColor (Color.green); // Retrieve an iterator for the ArrayList of points Iterator pointIterator = pointList.iterator(); while (pointIterator.hasNext()) { Point drawPoint = (Point) pointIterator.next(); page.fillOval (drawPoint.x - RADIUS, drawPoint.y - RADIUS, RADIUS * 2, RADIUS * 2); } page.drawString ("Count: " + count, 5, 15); } //***************************************************************** // Represents the listener for mouse events. //***************************************************************** private class DotsListener implements MouseListener { //-------------------------------------------------------------- // Adds the current point to the list of points and redraws // whenever the mouse button is pressed. //-------------------------------------------------------------- public void mousePressed (MouseEvent event) { pointList.add (event.getPoint()); count++; repaint(); } //----------------------------------------------------------------- // Provide empty definitions for unused event methods. //----------------------------------------------------------------- public void mouseClicked (MouseEvent event) {} public void mouseReleased (MouseEvent event) {} public void mouseEntered (MouseEvent event) {} public void mouseExited (MouseEvent event) {} } } Lykke til videre Lenke til kommentar
ti-guru Skrevet 12. mars 2004 Forfatter Del Skrevet 12. mars 2004 takker! da kan jeg endelig begynne å legg ut noen programmer... Lenke til kommentar
<BøNilzen> Skrevet 13. mars 2004 Del Skrevet 13. mars 2004 (endret) Hei. Tenkte jeg også skule prøve meg litt på Java (bruker C++ til vanlig) og prøvde et av eksemplene, men fik det ikke til.... <applet> import java.awt.*; import java.awt.event.*; import javax.swing.*; // import java.applet.* for stygge komponenter public class Testprogram extends JApplet { private JButton button = new JButton("Klikk her"); private JLabel label = new JLabel(""); private int teller = 0; void init() // main metoden til online applets { button.addActionListener(new ButtonListener()); // lytter til knappen Container cp = getContentPane(); // container for appleten cp.setLayout(new FlowLayout()); cp.add(button); cp.add(label); setSize(300,35); } // så trenger vi en knappelytter private class ButtonListener implements ActionListener { public void actionPerformed(ActionEvent event) { teller++; label.setText(Integer.toString(teller)); repaint(); // valgfri } } } </applet> Er det bare at browseren min ikke har støte for java? Edit: Bør kanskje si hva som er galt... Får et helt grått område i vinduet.. Endret 13. mars 2004 av <BøNilzen> Lenke til kommentar
MailMan13 Skrevet 13. mars 2004 Del Skrevet 13. mars 2004 Hei.Tenkte jeg også skule prøve meg litt på Java (bruker C++ til vanlig) og prøvde et av eksemplene, men fik det ikke til.... <applet> import java.awt.*; import java.awt.event.*; import javax.swing.*; // import java.applet.* for stygge komponenter public class Testprogram extends JApplet { private JButton button = new JButton("Klikk her"); private JLabel label = new JLabel(""); private int teller = 0; void init() // main metoden til online applets { button.addActionListener(new ButtonListener()); // lytter til knappen Container cp = getContentPane(); // container for appleten cp.setLayout(new FlowLayout()); cp.add(button); cp.add(label); setSize(300,35); } // så trenger vi en knappelytter private class ButtonListener implements ActionListener { public void actionPerformed(ActionEvent event) { teller++; label.setText(Integer.toString(teller)); repaint(); // valgfri } } } </applet> Er det bare at browseren min ikke har støte for java? Edit: Bør kanskje si hva som er galt... Får et helt grått område i vinduet.. Du kan ikke plassere kildekoden i html filen, den må kompileres til en bytecode fil (.class) som så lastes opp på nettstedet og refereres fra en <applet> tag. Lenke til kommentar
<BøNilzen> Skrevet 13. mars 2004 Del Skrevet 13. mars 2004 Ok, da vet jeg det også. Link til en grei compiler? Lenke til kommentar
ilpostino Skrevet 13. mars 2004 Del Skrevet 13. mars 2004 lærte meg java for endel år siden og lagde da endel applets. har lagt merke til at alle eksemplene her inneholder følgende: import java.swing.*; er dette fordi dette er en 'oppgradering' som lager finere/bedre utseene/design på appleten? noen tips angående litteratur til en stakkar som holder på å ta opp igjen java? lest igjennom 'java for dummies' som jeg kjøpte for en del år siden og lest litt i 'ivor nortons beginning java' men den er så tunglest... Lenke til kommentar
ilpostino Skrevet 13. mars 2004 Del Skrevet 13. mars 2004 Ok, da vet jeg det også.Link til en grei compiler? uansett hvilkent os du bruker kan du laste ned fra SunSun (som har 'laget' Java) Lenke til kommentar
MailMan13 Skrevet 14. mars 2004 Del Skrevet 14. mars 2004 lærte meg java for endel år siden og lagde da endel applets. har lagt merke til at alle eksemplene her inneholder følgende: import java.swing.*; er dette fordi dette er en 'oppgradering' som lager finere/bedre utseene/design på appleten? I Java 2 (1.2 og nyere ) ble javax biblioteket innført (java extended) med bla. swing som en oppgradering. De synlige forskjellene er det ser mye bedre ut med bla. annet forskjelling 'look and feel' innebygget (f.eks standard java, windows og gtk+ looks innebygget). De har vert tilgjengelig en stund, men siden M$ sin VM som fulgte med IE inntil nylig er basert på Java 1.1.3 har de normalt ikke vert kompatible med IE. Graphics2D er også kommet med som en kraftig forbedring av de gamle java.awt.Graphics grensesnittet og standardimplementasjonene fra det gamle AWT rammeverket. Fra Java 1.4.0 er mange 'offscreen' tegneoperasjoner implementert med Direct Draw (win)/ DRI (nix) som gir en grunnleggende HW aksellerasjon til primitive operasjoner slik at Java faktisk er blitt raskere enn f.eks C med SDL mot en software buffer. Myten om at java ikke egner seg til grafikk begynner så smått å bli utdatert. De nye klassene oppfører seg også litt anderledes, men det merker du fort når du begynner å programmere mot dem. 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å