Как сделать AWT Button () и использовать ImageIcon (), Icon ()?
Как применить изображение GIF к моей Button
AWT?
AWT : не работает
Icon warnIcon = new ImageIcon("/src/world.gif"); Button button1 = new Button(warnIcon); Icon warnIcon = new ImageIcon("/src/world.gif"); JButton button1 = new JButton(warnIcon);
- Как создать RecyclerView с несколькими типами просмотра?
- Возможно ли программирование графического интерфейса?
- Выберите все содержимое текстового поля, когда он получает фокус (Vanilla JS или jQuery)
- Установка свойства Style метки WPF в коде?
- Как определить направление движения между левым / правым и вверх / вниз
- Сделать приложение-волшебник на Android-устройстве
- Форматирование даты MM / DD / YYYY в текстовом поле в VBA
- JavaFx tableview sort действительно медленный, как улучшить скорость сортировки, как в java swing
- Как определить несколько действий JButton из другого classа
- Как реализовать воздушное сообщение в приложении WPF
- paintComponent () vs paint () и JPanel vs Canvas в графическом интерфейсе типа кисти
- Подвижные столбцы со значением с помощью java
- Размер шрифта Bind в JavaFX?
AWT немного отличается от Swing.
Нет button(image)
конструктора button(image)
, поэтому ваш «не работает».
Посмотрите, как расширить AWT с помощью собственных кнопок изображения, чтобы увидеть, как сделать это изображение на кнопке AWT.
Вернемся к вашей истории за три дня, пожалуйста, попробуйте запустить код ниже на вашей родной ОС и с помощью OpenJDK (возможно, действительно самое время загрузить стабильный JDK из Oracle, вы можете только переключить его в свойствах проекта):
-
Запуск из NetBeans
-
скомпилирован в файл JAR или class
import java.awt.event.*; import java.awt.Color; import java.awt.AlphaComposite; import javax.swing.*; import javax.swing.UIManager.LookAndFeelInfo; public class ButtonTest { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new ButtonTest().createAndShowGUI(); } }); } private JFrame frame; private JButton opaqueButton1; private JButton opaqueButton2; private SoftJButton softButton1; private SoftJButton softButton2; public void createAndShowGUI() { opaqueButton1 = new JButton("Opaque Button"); opaqueButton2 = new JButton("Opaque Button"); softButton1 = new SoftJButton("Transparent Button"); softButton2 = new SoftJButton("Transparent Button"); opaqueButton1.setBackground(Color.GREEN); softButton1.setBackground(Color.GREEN); frame = new JFrame(); frame.getContentPane().setLayout(new java.awt.GridLayout(2, 2, 10, 10)); frame.add(opaqueButton1); frame.add(softButton1); frame.add(opaqueButton2); frame.add(softButton2); frame.setSize(567, 350); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); Timer alphaChanger = new Timer(30, new ActionListener() { private float incrementer = -.03f; @Override public void actionPerformed(ActionEvent e) { float newAlpha = softButton1.getAlpha() + incrementer; if (newAlpha < 0) { newAlpha = 0; incrementer = -incrementer; } else if (newAlpha > 1f) { newAlpha = 1f; incrementer = -incrementer; } softButton1.setAlpha(newAlpha); softButton2.setAlpha(newAlpha); } }); alphaChanger.start(); Timer uiChanger = new Timer(3500, new ActionListener() { private LookAndFeelInfo[] laf = UIManager.getInstalledLookAndFeels(); private int index = 1; @Override public void actionPerformed(ActionEvent e) { try { UIManager.setLookAndFeel(laf[index].getClassName()); SwingUtilities.updateComponentTreeUI(frame); } catch (Exception exc) { exc.printStackTrace(); } index = (index + 1) % laf.length; } }); uiChanger.start(); } public static class SoftJButton extends JButton { private static final JButton lafDeterminer = new JButton(); private static final long serialVersionUID = 1L; private boolean rectangularLAF; private float alpha = 1f; public SoftJButton() { this(null, null); } public SoftJButton(String text) { this(text, null); } public SoftJButton(String text, Icon icon) { super(text, icon); setOpaque(false); setFocusPainted(false); } public float getAlpha() { return alpha; } public void setAlpha(float alpha) { this.alpha = alpha; repaint(); } @Override public void paintComponent(java.awt.Graphics g) { java.awt.Graphics2D g2 = (java.awt.Graphics2D) g; g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha)); if (rectangularLAF && isBackgroundSet()) { Color c = getBackground(); g2.setColor(c); g.fillRect(0, 0, getWidth(), getHeight()); } super.paintComponent(g2); } @Override public void updateUI() { super.updateUI(); lafDeterminer.updateUI(); rectangularLAF = lafDeterminer.isOpaque(); } } }