Плохо понимаю принцип реализации кнопок. Буду признателен за разъяснения. P.S. как реализовать увеличение/уменьшение на каждое нажатие,а не 1 раз?
public class GUI extends Frame {
public GUI() throws HeadlessException {
Frame frame = new Frame();
frame.setVisible(true);
frame.setTitle("Test window");
frame.setSize(300, 300);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
//System.exit(0);
frame.dispose();
}
});
String fontName = "Arial";
int fontStyle = 10;
int fontSize = 12;
Font font = new Font(fontName, fontStyle, fontSize);
Panel mainPanel = new Panel();
Panel textPlacePanel = new Panel();
Panel buttonPlacePanel = new Panel();
Button increaseButton = new Button("Increase");
Button decreaseButton = new Button("Decrease");
Label label = new Label("Font size");
TextArea textArea = new TextArea();
textArea.setFont(font);
frame.add(mainPanel,BorderLayout.CENTER);
frame.add(buttonPlacePanel,BorderLayout.SOUTH);
frame.add(textPlacePanel,BorderLayout.CENTER);
buttonPlacePanel.add(label);
buttonPlacePanel.add(increaseButton);
buttonPlacePanel.add(decreaseButton);
textPlacePanel.add(textArea);
increaseButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int i = font.getSize();
Font font = new Font(fontName,fontStyle,++i);
textArea.setFont(font);
}
});
decreaseButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int i = font.getSize();
Font font = new Font(fontName,fontStyle,--i);
textArea.setFont(font);
}
});
}
public static void main(String[] args) {
GUI gui = new GUI();
}
}
Проблема в том, что размер шрифта вы берете у внешнего объекта font
, который вы не изменяете, поэтому работает только 1 раз.
int i = font.getSize();
Font font = new Font(fontName,fontStyle,++i);
textArea.setFont(font);
Получайте шрифт из TextArea и берите его размер. В обоих случаях:
int i = textArea.getFont().getSize();
Font font = new Font(fontName,fontStyle,++i);
textArea.setFont(font);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
При первой попытке запуска sqldeveloper система запрашивает полный путь установленного JDKДля того, чтобы узнать полную путь до jdk я использую команду...
Смысл такой: заходят три потока с очередностью в три секунды, первый поток как надо проходит остальные два ждут, но когда доходит до просыпания...