Salve non è che qualcuno gentilemente mi speiga perchè nel codice che segue (che è già pronto alla compilazione e quindi consiglio di provare) il JDialog mostrato alla pressione del pulsante non ha il look and feel impostato correttamente come uguale a quello del frame principale ?
codice:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ProvaFrame extends JFrame
{
MyPanel panel;
public ProvaFrame()
{
panel = new MyPanel(this);
setContentPane(panel);
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
SwingUtilities.updateComponentTreeUI(this);
}
catch(Exception e)
{
System.err.println("Impossibile impostare il LookAndFeel del sistema");
}
}
public static void main(String [] args)
{
ProvaFrame frame = new ProvaFrame();
final int iInset = 50;
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
frame.setBounds ( iInset, iInset, screenSize.width - iInset*2,
screenSize.height - iInset*2 );
frame.setVisible(true);
}
}
class MyPanel extends JPanel implements ActionListener
{
private ProvaFrame mainFrame;
private JDialog myDialog;
private JButton showButt;
public MyPanel(ProvaFrame mainFrame)
{
this.mainFrame = mainFrame;
System.out.print(mainFrame == null);//non è null come si vede!!
showButt = new JButton("mostra dialogo");
add(showButt);
showButt.addActionListener(this);
myDialog = new JDialog(mainFrame,"dialogo",true);
myDialog.setSize(200,200);
myDialog.setLocationRelativeTo(mainFrame);
}
public void actionPerformed(ActionEvent event)
{
myDialog.setVisible(true);
}
}