mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 06:39:38 +07:00
IDEA-237293 GUI Designer unable to preview form because of FormPreviewFrame.class missing
GitOrigin-RevId: cbeff27984e82623db4cb171e363d0ae067d3ff3
This commit is contained in:
committed by
intellij-monorepo-bot
parent
964e4103fb
commit
5524a5cee1
@@ -0,0 +1,103 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.uiDesigner;
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
// NOTE: DO NOT DELETE THIS FILE (See to PreviewFormAction)
|
||||
|
||||
public class FormPreviewFrame {
|
||||
private JComponent myComponent;
|
||||
private static final ResourceBundle ourBundle = ResourceBundle.getBundle("RuntimeBundle");
|
||||
|
||||
// Note: this class should not be obfuscated
|
||||
|
||||
public static void main(String[] args) {
|
||||
FormPreviewFrame f = new FormPreviewFrame();
|
||||
|
||||
JFrame frame = new JFrame(ourBundle.getString("form.preview.title"));
|
||||
frame.setContentPane(f.myComponent);
|
||||
frame.setDefaultCloseOperation(3); //WindowConstants.EXIT_ON_CLOSE is not presented in JDK 1.3
|
||||
|
||||
// Add menu bar
|
||||
final JMenuBar menuBar = new JMenuBar();
|
||||
frame.setJMenuBar(menuBar);
|
||||
|
||||
final JMenu menuFile = new JMenu(ourBundle.getString("form.menu.preview"));
|
||||
menuFile.setMnemonic(ourBundle.getString("form.menu.preview.mnemonic").charAt(0));
|
||||
menuFile.add(new JMenuItem(new MyPackAction(frame)));
|
||||
menuFile.add(new JMenuItem(new MyExitAction()));
|
||||
menuBar.add(menuFile);
|
||||
|
||||
final JMenu viewMenu = new JMenu(ourBundle.getString("form.menu.laf"));
|
||||
viewMenu.setMnemonic(ourBundle.getString("form.menu.laf.mnemonic").charAt(0));
|
||||
menuBar.add(viewMenu);
|
||||
|
||||
final UIManager.LookAndFeelInfo[] lafs = UIManager.getInstalledLookAndFeels();
|
||||
for(int i = 0; i < lafs.length; i++){
|
||||
viewMenu.add(new MySetLafAction(frame, lafs[i]));
|
||||
}
|
||||
|
||||
frame.pack();
|
||||
Rectangle screenBounds =
|
||||
GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration().getBounds();
|
||||
frame.setLocation(screenBounds.x + (screenBounds.width - frame.getWidth()) / 2,
|
||||
screenBounds.y + (screenBounds.height - frame.getHeight()) / 2);
|
||||
frame.setVisible(true);
|
||||
}
|
||||
|
||||
private static final class MyExitAction extends AbstractAction{
|
||||
MyExitAction() {
|
||||
super(ourBundle.getString("form.menu.file.exit"));
|
||||
}
|
||||
|
||||
public void actionPerformed(final ActionEvent e) {
|
||||
System.exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
private static final class MyPackAction extends AbstractAction{
|
||||
private final JFrame myFrame;
|
||||
|
||||
MyPackAction(final JFrame frame) {
|
||||
super(ourBundle.getString("form.menu.view.pack"));
|
||||
myFrame = frame;
|
||||
}
|
||||
|
||||
public void actionPerformed(final ActionEvent e) {
|
||||
myFrame.pack();
|
||||
}
|
||||
}
|
||||
|
||||
private static final class MySetLafAction extends AbstractAction{
|
||||
private final JFrame myFrame;
|
||||
private final UIManager.LookAndFeelInfo myInfo;
|
||||
|
||||
MySetLafAction(final JFrame frame, final UIManager.LookAndFeelInfo info) {
|
||||
super(info.getName());
|
||||
myFrame = frame;
|
||||
myInfo = info;
|
||||
}
|
||||
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
try{
|
||||
UIManager.setLookAndFeel(myInfo.getClassName());
|
||||
SwingUtilities.updateComponentTreeUI(myFrame);
|
||||
Dimension prefSize = myFrame.getPreferredSize();
|
||||
if(prefSize.width > myFrame.getWidth() || prefSize.height > myFrame.getHeight()){
|
||||
myFrame.pack();
|
||||
}
|
||||
}
|
||||
catch(Exception exc){
|
||||
JOptionPane.showMessageDialog(
|
||||
myFrame,
|
||||
MessageFormat.format(ourBundle.getString("error.cannot.change.look.feel"), new Object[] {exc.getMessage()}),
|
||||
ourBundle.getString("error.title"),
|
||||
JOptionPane.ERROR_MESSAGE
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user