Как сделать окно похожим на это в Java? - PullRequest
6 голосов
/ 22 февраля 2011

Как мне создать окно, которое выглядит в Java следующим образом:

frame

Мне нужна эта компоновка окна вместо стандартных границ Windows, и я не знаю, как это называется.

Редактировать: внешний вид не работает для меня:

not working for me

Ответы [ 5 ]

10 голосов
/ 22 февраля 2011

Если вы хотите, чтобы ваш Look and Feel рисовал оформление окна (так называется «граница»), тогда вам нужно позвонить JFrame.setDefaultLookAndFeelDecorated(true) до создания вашего JFrame объектов и JDialog.setDefaultLookAndFeelDecorated(true) до создания ваших JDialog объектов.

3 голосов
/ 22 февраля 2011

это называется внешний вид, подробное объяснение вы можете найти здесь http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

2 голосов
/ 22 февраля 2011

Вы должны будете сначала настроить внешний вид, чтобы использовать кроссплатформенный внешний вид (как кто-то прокомментировал, прежде чем это назвали металлом). Затем перед созданием фрейма вам нужно запросить, чтобы границы были нарисованы по внешнему виду.

try
{
    UIManager.setLookAndFeel(
        UIManager.getCrossPlatformLookAndFeelClassName());
}
catch (Exception e) { }

Это позволит настроить внешний вид на тот, который вы хотите. Поскольку кроссплатформенный внешний вид является металлическим в JRE Sun.

// Get window decorations drawn by the look and feel.
JFrame.setDefaultLookAndFeelDecorated(true);

// Create the JFrame.
JFrame frame = new JFrame("A window");

И это создаст границы созданного JFrame, как вы описали.

0 голосов
/ 05 июня 2013

Добавьте это к вашему методу main ():

try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Windows".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(testjframe.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(testjframe.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(testjframe.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(testjframe.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
0 голосов
/ 30 ноября 2012

Чтобы настроить внешний вид окон для свинга, напишите следующий код в методе main.

public static void main (String args []) {
try {

         for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("windows".equalsIgnoreCase(info.getName())) {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }

    } catch (Exception ex) {
         System.out.println(e);
    } 


    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            MainFrame mainFrame = new MainFrame();
            mainFrame.setExtendedState(MAXIMIZED_BOTH);
            mainFrame.setVisible(true);

            InitDatabaseDialog initDatabaseDialog = new InitDatabaseDialog(mainFrame, true);
            initDatabaseDialog.setVisible(true); 
        }
    });
}
...