Я пытался изменить внешний вид jmenu и всей панели инструментов в Java SwingJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Я пытался изменить внешний вид jmenu и всей панели инструментов в Java Swing

Сообщение Anonymous »

Я пытался найти решение для кодирования и чувствовать себя эффективно, чтобы это не ошибается или что -то в этом роде. До сих пор это, казалось, работало с 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»