📄 fontchooserdialog.java
字号:
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jPanel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 379, Short.MAX_VALUE) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 198, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING) .addComponent(txtFamily, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 198, Short.MAX_VALUE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 99, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jLabel2) .addComponent(txtStyle, javax.swing.GroupLayout.DEFAULT_SIZE, 99, Short.MAX_VALUE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 70, Short.MAX_VALUE) .addComponent(jLabel3) .addComponent(txtSize, javax.swing.GroupLayout.DEFAULT_SIZE, 70, Short.MAX_VALUE))) .addGroup(layout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 231, Short.MAX_VALUE) .addComponent(btnOK) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btnCancel, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap()) ); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {btnCancel, btnOK}); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(jLabel2) .addComponent(jLabel3)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(txtStyle, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtFamily, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtSize, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jScrollPane2, 0, 0, Short.MAX_VALUE) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE) .addComponent(jScrollPane3, 0, 0, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, 105, Short.MAX_VALUE) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(btnCancel) .addComponent(btnOK)) .addContainerGap()) ); pack(); }// </editor-fold>//GEN-END:initComponents private void btnCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelActionPerformed OK = false; dispose(); }//GEN-LAST:event_btnCancelActionPerformed private void btnOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnOKActionPerformed String family = txtFamily.getText(); if (family.trim().length() == 0) { JOptionPane.showMessageDialog(this, "Please choose a font family!", "Error", JOptionPane.ERROR_MESSAGE); return; } String style = txtStyle.getText(); if (style.trim().length() == 0) { JOptionPane.showMessageDialog(this, "Please choose a font style!", "Error", JOptionPane.ERROR_MESSAGE); return; } String size = txtSize.getText(); if (size.trim().length() == 0) { JOptionPane.showMessageDialog(this, "Please choose a font size!", "Error", JOptionPane.ERROR_MESSAGE); return; } try { int isize = Integer.parseInt(size); if (isize < 3) { JOptionPane.showMessageDialog(this, "Font size should be an integer bigger than 2!", "Error", JOptionPane.ERROR_MESSAGE); return; } int istyle = Font.PLAIN; if (style.equals("Plain")) { istyle = Font.PLAIN; } else if (style.equals("Bold")) { istyle = Font.BOLD; } else if (style.equals("Italic")) { istyle = Font.ITALIC; } else if (style.equals("Bold Italic")) { istyle = Font.ITALIC | Font.BOLD; } OK = true; fontValue = new Font(family, istyle, isize); dispose(); } catch (NumberFormatException e) { JOptionPane.showMessageDialog(this, "Font size should be an integer!", "Error", JOptionPane.ERROR_MESSAGE); } }//GEN-LAST:event_btnOKActionPerformed private void lstFamilyValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstFamilyValueChanged String family = (String) lstFamily.getSelectedValue(); txtFamily.setText(family); refreshPreview(); }//GEN-LAST:event_lstFamilyValueChanged private void lstStyleValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstStyleValueChanged String style = (String) lstStyle.getSelectedValue(); txtStyle.setText(style); refreshPreview(); }//GEN-LAST:event_lstStyleValueChanged private void lstSizeValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstSizeValueChanged String size = ((Integer) lstSize.getSelectedValue()).toString(); txtSize.setText(size); refreshPreview(); }//GEN-LAST:event_lstSizeValueChanged private void txtSizeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtSizeActionPerformed String tSize = txtSize.getText(); try { int size = Integer.parseInt(tSize); if (size < 3) { JOptionPane.showMessageDialog(this, "Font size should be an integer bigger than 2!", "Error", JOptionPane.ERROR_MESSAGE); return; } lstSize.setSelectedValue(size, true); refreshPreview(); } catch (NumberFormatException nfe) { JOptionPane.showMessageDialog(this, "Font size should be an integer!", "Error", JOptionPane.ERROR_MESSAGE); } }//GEN-LAST:event_txtSizeActionPerformed private void refreshPreview() { String family = txtFamily.getText(); if (family.trim().length() == 0) { return; } String style = txtStyle.getText(); if (style.trim().length() == 0) { return; } String size = txtSize.getText(); if (size.trim().length() == 0) { return; } try { int isize = Integer.parseInt(size); if (isize < 3) { return; } int istyle = Font.PLAIN; if (style.equals("Plain")) { istyle = Font.PLAIN; } else if (style.equals("Bold")) { istyle = Font.BOLD; } else if (style.equals("Italic")) { istyle = Font.ITALIC; } else if (style.equals("Bold Italic")) { istyle = Font.ITALIC | Font.BOLD; } Font f = new Font(family, istyle, isize); lblPreview.setFont(f); lblPreview.setText(f.getFamily() + " " + f.getSize() + " " + style); } catch (NumberFormatException e) { } } /** * @param args the command line arguments */ public static void main(String[] args) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { FontChooserDialog dialog = new FontChooserDialog(new javax.swing.JFrame(), true); dialog.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent e) { System.exit(0); } }); dialog.setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnCancel; private javax.swing.JButton btnOK; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel2; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JLabel lblPreview; private javax.swing.JList lstFamily; private javax.swing.JList lstSize; private javax.swing.JList lstStyle; private javax.swing.JTextField txtFamily; private javax.swing.JTextField txtSize; private javax.swing.JTextField txtStyle; // End of variables declaration//GEN-END:variables}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -