Trong kết nối với hai bài @iMohammad, Increasing/Decreasing Font Size inside textArea using JButton và Changing Font Style when Clicking on a JButton Java ..., tôi phải đối mặt với vấn đề thực sự hài hước đến từ JComboBox
bằng cách thông qua setPrototypeDisplayValue
như một cuộc tranh cãi cho JComboBox's size
trên màn hìnhTại sao JComboBox bỏ qua PrototypeDisplayValue
hài lòng như thế nào tôi có thể thay đổi kích thước JComboBox
động phụ thuộc của Font
, giống như tác phẩm một cách chính xác cho một JComponents rằng tôi đã cố gắng trong tôi sscce
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ComboBoxFontChange extends JFrame {
private static final long serialVersionUID = 1L;
private JComboBox cbox = new JComboBox();
private JTextField tfield = new JTextField("Change");
private JLabel label = new JLabel("Cash");
private JButton button = new JButton("++ Font");
private JTextField text;
private JPanel panel = new JPanel();
public ComboBoxFontChange() {
super("Combo Box Font change");
text = (JTextField) cbox.getEditor().getEditorComponent();
cbox.addItem("Change");
cbox.addItem("Cash");
cbox.addItem("Font");
tfield.setColumns(5);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Font font = cbox.getFont();
font = font.deriveFont((float) (font.getSize2D() * 1.10));
cbox.setFont(font);
// EDIT
cbox.setPrototypeDisplayValue(cbox.getSelectedItem().toString());
tfield.setFont(font);
button.setFont(font);
label.setFont(font);
//panel.revalidate();
//panel.repaint();
pack();
}
});
//panel.setLayout(new GridLayout(2, 2, 10, 10));
panel.add(cbox);
panel.add(label);
panel.add(tfield);
panel.add(button);
setDefaultCloseOperation(EXIT_ON_CLOSE);
add(panel);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
ComboBoxFontChange frame = new ComboBoxFontChange();
frame.pack();
frame.setVisible(true);
}
});
}
}
do nhầm lẫn Tôi đã chỉnh sửa các dòng mã sai, nhanh tay, bây giờ là chính xác làm ví dụ – mKorbel
Vui lòng giải thích chương trình nên làm gì và thay vào đó. Mọi thứ dường như hoạt động như mong đợi (JDK 1.7.0_02-ea). –
:-) phần còn lại của chúng tôi vẫn còn trong Java6, JComboBox vẫn có cùng kích thước trên màn hình – mKorbel