aspose file tools*
The moose likes Swing / AWT / SWT and the fly likes How to Dialog appear with look & feels CrossPlatform? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "How to Dialog appear with look & feels CrossPlatform?" Watch "How to Dialog appear with look & feels CrossPlatform?" New topic
Author

How to Dialog appear with look & feels CrossPlatform?

Thang Nguyen Cao
Greenhorn

Joined: Nov 17, 2004
Posts: 1
Why this follow code don't appear with L&Fs CrossPlatform?It's still appear with the title bar of OS that I use ( Windows XP).

package myprojects.icondialogswing;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/*
* IconDialogSwing.java
*
* Created on November 6, 2004, 12:07 AM
*/

/**
*
* @author thangcan
*/
public class IconDialogSwing extends JPanel {
ImageIcon icon = createImageIcon("icon/middle.gif");
JFrame frame;
String iconDesc = "A JOptionPane has its choice of icons";
/** Creates a new instance of IconDialogSwing */
public IconDialogSwing() {
super(new BorderLayout());

JPanel iconPanel = createIconDialog();
JLabel label = new JLabel("Click the \"Show it!\" button"
+ " to bring up the selected dialog.",
JLabel.CENTER);

iconPanel.setBorder(BorderFactory.createEmptyBorder(20,20,5,20));

this.add(iconPanel,BorderLayout.PAGE_START);
this.add(label,BorderLayout.PAGE_END);
this.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
}

protected static ImageIcon createImageIcon(String path) {
java.net.URL imgURL = IconDialogSwing.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}

private JPanel create2ColPane(String description,
JRadioButton[] radioButtons,
JButton showButton) {
JLabel label = new JLabel(description);
int numPerColumn = radioButtons.length/2;

JPanel grid = new JPanel(new GridLayout(0, 2));
for (int i = 0; i < numPerColumn; i++) {
grid.add(radioButtons);
grid.add(radioButtons[i + numPerColumn]);
}

JPanel box = new JPanel();
box.setLayout(new BoxLayout(box, BoxLayout.PAGE_AXIS));
box.add(label);
grid.setAlignmentX(0.0f);
box.add(grid);

JPanel pane = new JPanel(new BorderLayout());
pane.add(box, BorderLayout.PAGE_START);
pane.add(showButton, BorderLayout.PAGE_END);

return pane;
}

private JPanel createIconDialog() {
JButton showItButton = null;

final int numButtons = 6;
JRadioButton[] radioButtons = new JRadioButton[numButtons];
final ButtonGroup group = new ButtonGroup();

final String plainCommand = "plain";
final String infoCommand = "info";
final String questionCommand = "question";
final String errorCommand = "error";
final String warningCommand = "warning";
final String customCommand = "custom";

radioButtons[0] = new JRadioButton("Plain (no icon)");
radioButtons[0].setActionCommand(plainCommand);

radioButtons[1] = new JRadioButton("Information icon");
radioButtons[1].setActionCommand(infoCommand);

radioButtons[2] = new JRadioButton("Question icon");
radioButtons[2].setActionCommand(questionCommand);

radioButtons[3] = new JRadioButton("Error icon");
radioButtons[3].setActionCommand(errorCommand);

radioButtons[4] = new JRadioButton("Warning icon");
radioButtons[4].setActionCommand(warningCommand);

radioButtons[5] = new JRadioButton("Custom icon");
radioButtons[5].setActionCommand(customCommand);

for (int i = 0; i < numButtons; i++) {
group.add(radioButtons);
}
radioButtons[0].setSelected(true);

showItButton = new JButton("Show it!");
showItButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String command = group.getSelection().getActionCommand();

//no icon
if (command == plainCommand) {
JOptionPane.showMessageDialog(frame,
"Eggs aren't supposed to be green.",
"A plain message",
JOptionPane.PLAIN_MESSAGE);
//information icon
}
else if (command == infoCommand) {
JOptionPane.showMessageDialog(frame,
"Eggs aren't supposed to be green.",
"Inane informational dialog",
JOptionPane.INFORMATION_MESSAGE);
//question icon
}
else if (command == questionCommand) {
JOptionPane.showMessageDialog(frame,
"You shouldn't use a message dialog "
+ "(like this)\n"
+ "for a question, OK?",
"Inane question",
JOptionPane.QUESTION_MESSAGE);
//error icon
}
else if (command == errorCommand) {
JOptionPane.showMessageDialog(frame,
"Eggs aren't supposed to be green.",
"Inane error",
JOptionPane.ERROR_MESSAGE);
//warning icon
}
else if (command == warningCommand) {
JOptionPane.showMessageDialog(frame,
"Eggs aren't supposed to be green.",
"Inane warning",
JOptionPane.WARNING_MESSAGE);
//custom icon
}
else if (command == customCommand) {
JOptionPane.showMessageDialog(frame,
"Eggs aren't supposed to be green.",
"Inane custom dialog",
JOptionPane.INFORMATION_MESSAGE,
icon);
}
}
});

return create2ColPane(iconDesc + ":",
radioButtons,
showItButton);
}

private static void createAndShowGUI() {
JFrame.setDefaultLookAndFeelDecorated(true);

JFrame frame = new JFrame("IconDialogSwing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

IconDialogSwing newContentPane = new IconDialogSwing();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);

frame.pack();
frame.setVisible(true);
}

public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}


Though I inserted a snip code setDefaultLookAndFeelDecorated(true).Why 's that???
When I wrote a app that extends JDialog, I also used method setContentPane(contenPane) which contentPane = new JOptionPane(...) and method setDefaultLookAndFeelDecorated(true), this app appear with L&Fs CrossPlatform?
Help me.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: How to Dialog appear with look & feels CrossPlatform?
 
Similar Threads
Radio button class returns null pointer exception
model for group of radio buttons
How to make Large JOptionPane?
Any idea why my jpeg isn't showing?
Look and Feel