2015-04-12 1 views
0

Я работал над полноэкранным качели и недавно приобрел новый ноутбук.JDialog не отображается на новом компьютере?

На этом новом ноутбуке шрифты не отображаются в программе, и я предполагаю, что на этом компьютере не установлен шрифт «MT Footlight light». Тем не менее, что более важно, созданный мной JDialog не появляется в передней части экрана, даже после вызовов toFront() или requestFocus().

Я мог бы предоставить SSCCE, но код отлично работает на других компьютерах, которые я использовал, которые имеют одну и ту же ОС (Windows 8) и другую (Windows 7), поэтому, если у кого-то есть идеи, происходящий, пожалуйста, дайте мне знать

EDIT:

это начинает выглядеть как это может быть не новый компьютер, хотя я на самом деле не редактировали части с JDialog, но вот SSCCE довольно много всего, что влияет на JDialog

public class Runner { 
public static void main(String[] args){ 
    GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
    GraphicsDevice[] devices = graphicsEnvironment.getScreenDevices(); 
    new MainFrame(devices[0]); 
} 
} 

public MainFrame(GraphicsDevice graphicsDevice){ 
     super(); 
     this.setGraphicsDevice(graphicsDevice); 
     this.setOrigDisplay(graphicsDevice.getDisplayMode()); 

    //Sets the panel to its default start screen, the main menu 
    setPanel(new MainMenuPanel(this)); 

    //Resizes to full-screen 
    if (graphicsDevice.isFullScreenSupported()){ 
     this.dispose(); 
     setUndecorated(true); 
     setResizable(false); 

     graphicsDevice.setFullScreenWindow(this); 
     //this.setVisible(false); 
     revalidate(); 
    }else{ 
     System.out.println("Full-screen mode not supported"); 
    } 

    //Applies the custom theme 
    try { 
     Theme.loadTheme(new File("res/IS.theme")); 
     UIManager.setLookAndFeel(new TinyLookAndFeel()); 
    } catch (UnsupportedLookAndFeelException e) { 
     e.printStackTrace(); 
    } 
    SwingUtilities.updateComponentTreeUI(this); 
    Toolkit.getDefaultToolkit().setDynamicLayout(false); 
    System.setProperty("sun.awt.noerasebackground", "true"); 
    JFrame.setDefaultLookAndFeelDecorated(true); 
    JDialog.setDefaultLookAndFeelDecorated(true); 

    Dimension size = Toolkit.getDefaultToolkit().getScreenSize(); 
    this.setBounds(0, 0, size.width, size.height); 


} 
public class OptionsPanel extends JPanel{ 
    private final MainFrame context; 
    private SetupDialog setup; 

public OptionsPanel(final MainFrame m){ 
    super(); 
    setLayout(new GridBagLayout()); 
    this.context = m; 

    JButton setupButton = new JButton("Run set-up"); 
    setupButton.setFont(Constants.FONT_BIG); 
    setupButton.setMargin(new Insets(20,20,20,20)); 
    setupButton.addActionListener(new ActionListener(){ 
     public void actionPerformed(ActionEvent e){ 
      //TODO 
      setup = new SetupDialog(context); 

     } 
    }); 
//Other options stuff 
} 
} 

public class SetupDialog extends JDialog{ 
private MainFrame context; 
private JList<Info> midiSystemList; 
private int instruction; 
private NoteListener n; 

public SetupDialog(MainFrame m){ 
    super(m); 
    this.context = m; 
    //setTitle("Set-up"); 
    this.setUndecorated(false); 

    this.setLocationRelativeTo(null); 


    //Does setup stuff 




    this.setUndecorated(true); 
    pack(); 

    setModal(true); 


    setVisible(true); 

} 

}

+0

Вы используете ту же реализацию jdk на обеих системах? – Jimmy

+0

У меня есть eclipse и jre на внешнем жестком диске, поэтому оно должно быть –

+0

Что произойдет, если вы запустите в командной строке? Печатает ли какие-либо сообщения об ошибках? –

ответ

0

мне удалось исправить мою проблему, изменив от фактического полноэкранного режима к другому виду, используя

this.setExtendedState(JFrame.EXTENDED_BOTH); 
this.setUndecorated(true); 

Я до сих пор не уверен, что изменилось, так как я был ранее в состоянии использовать JDialogs в обычном полноэкранном режиме но это решение работает, тем не менее,