Re: Applet code conversion...
 
On 5/1/2012 12:28 AM, linus wrote:
Lew ha scritto:
linus wrote:
How an applet code code can be trasformed to an application code ?
I thought that adding a "main" would be enough .... but it is not so
easy ! Is
there an example about this my problem ?
Did you try a web search?
I found this in five minutes or less:
<http://www.johnloomis.org/cpe101/notes/SwingGUI/combined/combined.html>
FWIW, my search string was "Java combining an applet and application".
With the code
http://www.johnloomis.org/cpe101/notes/SwingGUI/combined/combined.html
I get >>
:174: width is not public in java.awt.Component; cannot be accessed from
outside package
{ width = ( w >= 0 ? w : 300 ); }
:177: height is not public in java.awt.Component; cannot be accessed
from outside package
{ height = ( h >= 0 ? h : 200 ); }
Wath have I to do ?
Many thanks .
Linus:
The code you provide does run as an application.  Just compile it and 
run it.  It is however way too complex for the task it is attempting.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class test extends JPanel implements ActionListener {
     private String state = "";
     public test() {
         setPreferredSize(new Dimension(400,300));
     }
     public void actionPerformed(ActionEvent ae) {
         state = ae.getActionCommand();
         repaint();
     }
     public void paintComponent(Graphics g) {
         g.setColor(getBackground());
         g.fillRect(0,0,getWidth(),getHeight());
         g.setColor(getForeground());
         if (state.equals("Line"))
             g.drawLine(0,0,getWidth(),getHeight());
         else if (state.equals("Oval"))
             g.drawOval(0,0,getWidth(),getHeight());
         else if (state.equals("Rect"))
             g.drawRect(5,5,getWidth()-10,getHeight()-10);
     }
     public static void main(String[] args) {
         EventQueue.invokeLater(new Runnable() {
             public void run() {
                 test t = new test();
                 JFrame f = new JFrame("test");
                 f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                 f.add(t,BorderLayout.CENTER);
                 JPanel p = new JPanel();
                 JButton b = new JButton("Line");
                 b.addActionListener(t);
                 p.add(b);
                 b = new JButton("Oval");
                 b.addActionListener(t);
                 p.add(b);
                 b = new JButton("Rect");
                 b.addActionListener(t);
                 p.add(b);
                 f.add(p,BorderLayout.NORTH);
                 f.pack();
                 f.setVisible(true);
             }
         });
     }
}
I deliberately left out the random code because I felt like it.
-- 
Knute Johnson