我正在用Java編寫一個基本的定時器程序,在程序中,我想在頂部有一個菜單欄。我以現在的代碼是:如何在圖形上繪製JMenuBar
public Main() {
JMenuBar menubar = new JMenuBar();
setJMenuBar(menubar);
JMenu menu = new JMenu("Test");
menubar.add(menu);
JMenuItem menuitem = new JMenuItem("Item");
menu.add(menuitem);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 500);
setTitle(Namer.name);
new Timer(delay, timer).start();
new Timer(1, new Refresher()).start();
setResizable(false);
setVisible(true);
}
public void paint(Graphics g) {
Graphics buffer = unscreen.getGraphics();
buffer.setColor(Color.white);
buffer.fillRect(0, 0, 500, 500);
buffer.setColor(Color.black);
buffer.setFont(new Font("Times New Roman", Font.PLAIN, 25));
// buffer.drawString("hours:minutes:seconds: ", 25, 100);
buffer.drawString(hourss + numhours + ":" + minutess + numminutes + ":"
+ secondss + numseconds, 100, 100);
g.drawImage(unscreen, 0, 0, null);
}
當我運行這段代碼,我得到的一切我所期望的,該圖是多久程序已經啓動的一些數字和的頂部的菜單欄屏幕,除了菜單欄。我已經嘗試過註釋掉paint方法,並且當我這樣做時它可以工作。有沒有更好的方式來做我正在做的事情或對我的問題採取不同的解決方案?另外,如果有更好的方法在窗口上打印東西,我不需要那裏的繪畫方法。
你有沒有試過在你的paint方法中調用'super.paint(g)'? – Kyle 2011-06-16 11:17:43
謝謝,但它沒有奏效。 – user600842 2011-06-16 11:20:48