Я пытался найти решение для кодирования и чувствовать себя эффективно, чтобы это не ошибается или что -то в этом роде. До сих пор это, казалось, работало с Jmenubar, но я остановился в JMENU. Кроме того, иногда текст не отображается в неверном JMENU, но это может быть только я, делая это неправильно. Я попытался сделать пользовательский метод для JMENU, создав класс, который расширяет JMENU. Я попытался искать оригинальный исходный код JMENU в надежде, что есть некоторые методы, которые я могу переопределить. Не уверен, что так должно быть сделано. Я прочитал кое -что о Uimanager, но не пробовал. Может ли это быть лучшим вариантом? Я публикую свой код внизу: < /p>
Основной класс < /h5>
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Main {
public static void main(String[] args) {
// JFRAME
JFrame frame = new JFrame();
frame.setTitle("Test App");
frame.setResizable(true);
frame.setSize(800,600);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
// JMENUBAR
CustomMenuBar menuBar = new CustomMenuBar();
menuBar.setColor(Color.BLUE);
// JMENU
JMenu menu = new JMenu("Language");
menu.setForeground(Color.pink);
// menu.addMenuListener();
// JMENUITEM
JMenuItem eng = new JMenuItem("English");
menu.add(eng);
menuBar.add(menu);
frame.setJMenuBar(menuBar);
frame.setVisible(true);
}
}
< /code>
custommenubar class < /h5>
import javax.swing.*;
import java.awt.*;
public class CustomMenuBar extends JMenuBar {
Color menuBarBgc = Color.RED;
public void setColor(Color color) {
menuBarBgc = color;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(menuBarBgc);
g2d.fillRect(0,0,getWidth() -1, getHeight() -1);
}
}
< /code>
custommenu class < /h5>
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
public class CustomMenu extends JMenu {
Color menuBgc = Color.RED;
public void setColor(Color color) {
menuBgc = color;
// setOpaque(true);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(menuBgc);
g2d.fillRect(0,0,getWidth() -1, getHeight() -1);
}
}
`
< /code>
скриншоты < /h5>
Как выглядит приложение:
link < /p>
Как оно выглядит после щелчка Jmenu "Язык":
link < /p>
как я хочу, чтобы он выглядел так же (после того, как Jmen Jmenuitem внизу синий с розовым текстом, как и Jmenubar, прежде чем нажать что -либо):
link < /p>
Подробнее здесь: https://stackoverflow.com/questions/795 ... -java-swin
Я пытался изменить внешний вид jmenu и всей панели инструментов в Java Swing ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Я пытался изменить внешний вид jmenu и всей панели инструментов в Java Swing
Anonymous » » в форуме JAVA - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Я пытался изменить внешний вид jmenu и всей панели инструментов в Java Swing
Anonymous » » в форуме JAVA - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Я пытался изменить внешний вид jmenu и всей панели инструментов в Java Swing
Anonymous » » в форуме JAVA - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Я пытался изменить внешний вид jmenu и всей панели инструментов в Java Swing
Anonymous » » в форуме JAVA - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-