E' tutto fattibilissimo: puoi far convivere il public static void main degli "eseguibili" java con il metodo init delle applet. Anzi, personalmente includo sempre un main nelle mie applet per avvisare il malcapitato che cerca di eseguire con java nomeClasse da linea di comando che si tratta di un applet. Nulla vieta che vi si possa inserire ben più di un System.out.println nel main.
EDIT: esempio banalissimo
codice:
import javax.swing.*;
import java.awt.*;
import javax.swing.JApplet;
class myDemoPanel extends JPanel {
private JLabel label;
private JButton button;
public myDemoPanel() {
super();
this.setLayout(new GridLayout(2,1));
label = new JLabel("Questa è una JLabel");
button = new JButton("Questo è un JButton");
this.add(label);
this.add(button);
}
}
public class jAppletWithMain extends JApplet {
public void init() {
this.getContentPane().add(new myDemoPanel());
this.setVisible(true);
}
public jAppletWithMain() {
}
public static void main (String[] args) {
JFrame frame = new JFrame("Versione Applicazione Stand-Alone");
frame.setSize(400, 400);
frame.getContentPane().add(new myDemoPanel());
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}