В следующем простом коде я просто создаю фрейм и добавляю JPanel
и menubar
к нему.
public class MainFrame extends JFrame {
private DrawPanel drawPanel;
public MainFrame()
{
super("Coordinate Geometry Visualiser");
drawPanel = new DrawPanel();
add(drawPanel);
JMenu fileMenu = new JMenu("File");
fileMenu.setMnemonic('F');
JMenuItem newItem = new JMenuItem("New");
newItem.setMnemonic('N');
fileMenu.add(newItem);
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
menuBar.add(fileMenu);
JMenu editMenu = new JMenu("Edit");
editMenu.setMnemonic('E');
menuBar.add(editMenu);
}
}
Код панели рисования -
public class DrawPanel extends JPanel {
public DrawPanel()
{
}
public void paintComponent(Graphics g)
{
super.paintComponents(g);
setBackground(Color.BLACK);
g.setColor(Color.RED);
g.drawLine(100, 50, 150, 100);
}
}
инаконец приложение с main()
public class CGVApplication {
public static void main(String[] args) {
MainFrame appFrame = new MainFrame();
appFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
appFrame.setSize(300, 275);
appFrame.setVisible(true);
}
}
При запуске приложения внутри eclipse , вот что я получаю -
Почему двойной menubar и line ?Это очень раздражает.При циклическом переключении между приложениями или при появлении всплывающего окна с перерисованным окном все в порядке (правое изображение).
Также в моем DrawPanel paintComponent
я установил черный фон, но никакого эффекта?
В чем причина вышеуказанных двух проблем?Пожалуйста, помогите!