Attualmente sto lavorando su una piccola applicazione Java, che include GUI Swing. Sul mio PC di sviluppo tutto sembra a posto, ma quando lo eseguo su MS Surface, alcune icone sembrano troppo grandi per i componenti (o i componenti troppo piccoli per le icone).Ridimensionamento dell'interfaccia utente di Bad Swing ad alta risoluzione (superficie MS)
Ecco cosa intendo:
ricerca Google mi ha portato a concludere che questo è dovuto al alta risoluzione di superficie e zoom di Win8 di lasciare alcuni elementi appaiono un po 'più grande. Quindi ho ripristinato lo zoom al 100% e in effetti ho corretto il ridimensionamento errato.
Sfortunatamente, questo non risolve il problema. Tutto è troppo piccolo senza lo zoom, quindi preferisco non disattivarlo. Ma c'è un modo intelligente per risolvere questo? Posso semplicemente "svalutare" le icone del mio programma o di Java? Idealmente, mi piacerebbe anche l'upscaling dell'intero frame, perché tutto è piuttosto piccolo.
Edit: ovviamente, ho anche provato a ridimensionare l'attuale JFrame ma non ha alcun effetto sulle dimensioni della finestra di dialogo. Sto chiamando la finestra di dialogo
JOptionPane.showMessageDialog(frame, msg, "Information", JOptionPane.INFORMATION_MESSAGE);
a proposito.
Oracle non è in grado di aggiungere alta risoluzione a Swing. Puoi provare JavaFX o [Apache Pivot] (http://pivot.apache.org/). –
1. quelle icone (distribuite in pacchetti Java, intiliate in UIManager) hanno dimensioni fisse in pixel, 2. non reagiscono alle dimensioni dell'icona in ambiente di visualizzazione Win8/8.1, 3. forse problema specifico con Surface, [è possibile test] (http://stackoverflow.com/q/8575641/714968) – mKorbel