Avatar billede mcen Nybegynder
26. april 2005 - 13:08 Der er 15 kommentarer

Kald af metode som ligger under en klasse

Hej
Jeg er igang med at lave en application om til en applet. Er desværre løbet ind i et problem med at kalde, -fra en eventkanp -til en metode som ligger i en anden klasse, hvordan gør jeg?

På forhånd tak
Avatar billede kalp Novice
26. april 2005 - 13:10 #1
Kender ikke rigtigt noget til applets.. men gøre metoden statisk eller oprettet en instans af objektet?
Avatar billede arne_v Ekspert
26. april 2005 - 13:14 #2
Det burde være det samme uanset om det er en applet eller en applikation.
Avatar billede mcen Nybegynder
26. april 2005 - 13:35 #3
Det er desværre ikee helt det samme.. Jeg ved i hverfald ikke hvad jeg skal gøre med det der står i mainen.
Avatar billede arne_v Ekspert
26. april 2005 - 13:54 #4
Jeg refererede specifikt til metoden i den anden klasse.

Indholdet af main må enten skulel slettes eller flyttes til init metoden.
Avatar billede mcen Nybegynder
26. april 2005 - 14:17 #5
Tak, jeg kigger på det.. Har du fået poient? er ikke helt sikker på jeg har gjort det rigtigt.. Hvis ikke hvordan gør man så?
Avatar billede arne_v Ekspert
26. april 2005 - 14:56 #6
jeg ligget et svar (kommer her)

du accepterer
Avatar billede arne_v Ekspert
26. april 2005 - 14:56 #7
Jeg har muligvis nogle eksempler på kode som både er i applet og applikation.

Interesseret ?
Avatar billede mcen Nybegynder
26. april 2005 - 15:35 #8
Ja, det kunne være rigtig fint med kode i både applet og applicaton
Avatar billede arne_v Ekspert
26. april 2005 - 15:40 #9
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;

import javax.swing.*;

public class UploadManager extends JFrame implements ActionListener {
    private final static String UPLOAD_URL = "http://localhost/upload.asp";
    private JButton select;
    private JTextArea files;
    private JButton upload;
    private String dirname;
    private String[] filenames;
    public UploadManager() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().setLayout(new BorderLayout());
        select = new JButton("Select dir");
        select.addActionListener(this);
        getContentPane().add(select, BorderLayout.NORTH);
        files = new JTextArea();
        getContentPane().add(new JScrollPane(files), BorderLayout.CENTER);
        upload = new JButton("Upload");
        upload.addActionListener(this);
        getContentPane().add(upload, BorderLayout.SOUTH);
        pack();
    }
    public void actionPerformed(ActionEvent ev) {

        if(ev.getSource() == select) {
            JFileChooser chooser = new JFileChooser(System.getProperty("user.home"));
            chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
            if(chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
                File dir = chooser.getSelectedFile();
                dirname = dir.getAbsolutePath();
                filenames = dir.list();
                StringBuffer sb = new StringBuffer("");
                for(int i = 0; i < filenames.length; i++) {
                    sb.append(filenames[i]);
                    sb.append("\r\n");
                }
                files.setText(sb.toString());
                pack();
            }
        }
        if(ev.getSource() == upload) {
            for(int i = 0; i < filenames.length; i++) {
                upload(dirname, filenames[i]);
            }
        }
    }
    private void upload(String dirname, String filename) {
        try {
            URL url = new URL(UPLOAD_URL + "?filename=" + filename);
            HttpURLConnection con = (HttpURLConnection) url.openConnection();
            con.setRequestMethod("POST");
            con.setDoOutput(true);
            InputStream is = new FileInputStream(dirname + File.separator + filename);
            OutputStream os = con.getOutputStream();
            byte[] b = new byte[100000];
            int n;
            while((n = is.read(b)) >= 0) {
                os.write(b, 0, n);       
            }
            con.connect();
            if (con.getResponseCode() == HttpURLConnection.HTTP_OK) {
                //JOptionPane.showMessageDialog(this, filename + " uploaded");
            } else {
                JOptionPane.showMessageDialog(this, filename + " not uploaded");
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(this, filename + " not uploaded");
        }
    }
    public static void main(String[] args) {
        UploadManager um = new UploadManager();
        um.setVisible(true);
    }
}
Avatar billede arne_v Ekspert
26. april 2005 - 15:40 #10
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;

import javax.swing.*;

public class UploadManagerApplet extends JApplet implements ActionListener {
    private final static String UPLOAD_URL = "http://localhost/upload.asp";
    private JButton select;
    private JTextArea files;
    private JButton upload;
    private String dirname;
    private String[] filenames;
    public void init() {
        getContentPane().setLayout(new BorderLayout());
        select = new JButton("Select dir");
        select.addActionListener(this);
        getContentPane().add(select, BorderLayout.NORTH);
        files = new JTextArea();
        getContentPane().add(new JScrollPane(files), BorderLayout.CENTER);
        upload = new JButton("Upload");
        upload.addActionListener(this);
        getContentPane().add(upload, BorderLayout.SOUTH);
    }
    public void actionPerformed(ActionEvent ev) {
        if(ev.getSource() == select) {
            JFileChooser chooser = new JFileChooser(System.getProperty("user.home"));
            chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
            if(chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
                File dir = chooser.getSelectedFile();
                dirname = dir.getAbsolutePath();
                filenames = dir.list();
                StringBuffer sb = new StringBuffer("");
                for(int i = 0; i < filenames.length; i++) {
                    sb.append(filenames[i]);
                    sb.append("\r\n");
                }
                files.setText(sb.toString());
            }
        }
        if(ev.getSource() == upload) {
            for(int i = 0; i < filenames.length; i++) {
                upload(dirname, filenames[i]);
            }
        }
    }
    private void upload(String dirname, String filename) {
        try {
            URL url = new URL(UPLOAD_URL + "?filename=" + filename);
            HttpURLConnection con = (HttpURLConnection) url.openConnection();
            con.setRequestMethod("POST");
            con.setDoOutput(true);
            InputStream is = new FileInputStream(dirname + File.separator + filename);
            OutputStream os = con.getOutputStream();
            byte[] b = new byte[100000];
            int n;
            while((n = is.read(b)) >= 0) {
                os.write(b, 0, n);       
            }
            con.connect();
            if (con.getResponseCode() == HttpURLConnection.HTTP_OK) {
                //JOptionPane.showMessageDialog(this, filename + " uploaded");
            } else {
                JOptionPane.showMessageDialog(this, filename + " not uploaded");
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(this, filename + " not uploaded");
        }
    }
}
Avatar billede arne_v Ekspert
26. april 2005 - 15:41 #11
import java.awt.*;
import java.text.*;

import org.jfree.chart.*;
import org.jfree.chart.plot.*;
import org.jfree.chart.axis.*;
import org.jfree.chart.renderer.*;
import org.jfree.data.*;
import org.jfree.data.time.*;
import org.jfree.ui.*;

public class MovingAverageDemo extends ApplicationFrame {
  public MovingAverageDemo(String title, String data, int y1, int m1, int y2, int m2, double[] val) {
      super(title);
      TimeSeries ts1 = new TimeSeries(data, Month.class);
      int y = y1;
      int m = m1;
      int ix = 0;
      while((y < y2) || (m <= m2)) {
        ts1.add(new Month(m, y), val[ix]);
        m++;
        if(m > 12) {
            y++;
            m = 1;
        }
        ix++;
      }
      TimeSeries ts2 = MovingAverage.createMovingAverage(ts1, "6 month mov.avg. of " + data, 6, 0);
      TimeSeriesCollection dataset = new TimeSeriesCollection();
      dataset.addSeries(ts1);
      dataset.addSeries(ts2);
      JFreeChart chart = ChartFactory.createTimeSeriesChart(title, "Time", "Value", dataset, true, true, false);
      StandardLegend legend = (StandardLegend)chart.getLegend();
      legend.setDisplaySeriesShapes(true);
      XYPlot plot = chart.getXYPlot();
      XYItemRenderer renderer = plot.getRenderer();
      if (renderer instanceof StandardXYItemRenderer) {
        StandardXYItemRenderer rr = (StandardXYItemRenderer) renderer;
        rr.setPlotShapes(true);
        rr.setShapesFilled(true);
      }
      DateAxis axis = (DateAxis)plot.getDomainAxis();
      axis.setDateFormatOverride(new SimpleDateFormat("MMM-yyyy"));
      ChartPanel chartPanel = new ChartPanel(chart);
      chartPanel.setPreferredSize(new Dimension(500, 300));
      setContentPane(chartPanel);
      pack();
      setVisible(true);
  }
  public static void main(String[] args) {
      double[] x = { 1, 4, 9, 16, 25, 36, 30, 24, 18, 12, 6, 0, 32, 48, 56, 60, 62, 63 };
      MovingAverageDemo mad = new MovingAverageDemo("Moving Average Demo", "test data", 2003, 1, 2004, 6, x);
  }
}
Avatar billede arne_v Ekspert
26. april 2005 - 15:41 #12
import java.awt.*;
import java.text.*;
import java.util.*;

import javax.swing.*;

import org.jfree.chart.*;
import org.jfree.chart.plot.*;
import org.jfree.chart.axis.*;
import org.jfree.chart.renderer.*;
import org.jfree.data.*;
import org.jfree.data.time.*;

public class MovingAverageApplet extends JApplet {
  public void init() {
      String title = getParameter("title");
      String data = getParameter("data");
      int y1 = Integer.parseInt(getParameter("y1"));
      int m1 = Integer.parseInt(getParameter("m1"));
      int y2 = Integer.parseInt(getParameter("y2"));
      int m2 = Integer.parseInt(getParameter("m2"));
      StringTokenizer st = new StringTokenizer(getParameter("values"), ",");
      double[] x = new double[st.countTokens()];
      int ix = 0;
      while (st.hasMoreTokens()) {
        x[ix] = Double.parseDouble(st.nextToken());
        ix++;
      }
      init(title, data, y1, m1, y2, m2, x);
  }
  public void init(String title, String data, int y1, int m1, int y2, int m2, double[] val) {
      TimeSeries ts1 = new TimeSeries(data, Month.class);
      int y = y1;
      int m = m1;
      int ix = 0;
      while ((y < y2) || (m <= m2)) {
        ts1.add(new Month(m, y), val[ix]);
        m++;
        if (m > 12) {
            y++;
            m = 1;
        }
        ix++;
      }
      TimeSeries ts2 = MovingAverage.createMovingAverage(ts1, "6 month mov.avg. of " + data, 6, 0);
      TimeSeriesCollection dataset = new TimeSeriesCollection();
      dataset.addSeries(ts1);
      dataset.addSeries(ts2);
      JFreeChart chart = ChartFactory.createTimeSeriesChart(title, "Time", "Value", dataset, true, true, false);
      StandardLegend legend = (StandardLegend) chart.getLegend();
      legend.setDisplaySeriesShapes(true);
      XYPlot plot = chart.getXYPlot();
      XYItemRenderer renderer = plot.getRenderer();
      if (renderer instanceof StandardXYItemRenderer) {
        StandardXYItemRenderer rr = (StandardXYItemRenderer) renderer;
        rr.setPlotShapes(true);
        rr.setShapesFilled(true);
      }
      DateAxis axis = (DateAxis) plot.getDomainAxis();
      axis.setDateFormatOverride(new SimpleDateFormat("MMM-yyyy"));
      ChartPanel chartPanel = new ChartPanel(chart);
      chartPanel.setPreferredSize(new Dimension(500, 300));
      getContentPane().add(chartPanel);
      setVisible(true);
  }
}
Avatar billede mcen Nybegynder
26. april 2005 - 15:42 #13
takker mange gange:o)
Avatar billede arne_v Ekspert
28. maj 2005 - 17:26 #14
så mangler du bare at acceptere svaret ...
Avatar billede arne_v Ekspert
24. juli 2005 - 17:27 #15
...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester