解决方法:用JPanel来代替Canvas... 呃 确实是可以用JPanel来替代
或者用Menu不用JMenu
说来 轻量级和重量级有什么区分呢?除了会挡住=。=
另外=。=我有个ico文件想要在一个Dialog里显示 该怎么做? Most of the issues related to mixing AWT and Swing components are relatedto the mixing of so-called heavyweight and lightweight components.A heavyweight component is one that is associated with its ownnative screen resource (commonly known as a peer). A lightweight component is one that "borrows" the screen resource of an ancestor(which means it has no native resource of its own -- so it's "lighter").
如无必要,尽量不要使用重量级组件。因为它们可能会表现出平台相关性。
不要在同一个容器(Container)中混用重量级组件和轻量级组件,因为当重量级组件和轻量级组件发生重叠时,总是重量级组件把轻量级组件覆盖住
ICO文件...貌似JAVA中不支持ICO吧...把它转换为gif文件再用吧。 ICO就是要放到窗口左上角的那个地方的图图的说,GIF怎么做到哦.. 呃 确实是不支持ico呢。。。
说来 awt和swing哪个比较好呢?好似awt都是直接调用系统API而swing是绘制的吧? 引用第5楼yzk0370于2006-10-30 19:49发表的“”:
ICO就是要放到窗口左上角的那个地方的图图的说,GIF怎么做到哦..
Java又不是VC。。。没有ICO一说
左上角那个东东就是一个Image对象而已。用JAVA支持的图形格式都可以,比如jpg,gif,bmp...etc
例子:
import javax.swing.*;
import java.awt.*;
public class Test extends JFrame
{
public Test()
{
//标题
super("测试图标");
//设置大小和位置
setBounds(20,20,500,300);
//点击关闭按钮可以关闭窗口
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//加入图标
Image icon=new ImageIcon("icon.jpg").getImage();
setIconImage(icon);
}
public static void main(String [] args)
{
Test f=new Test();
f.setVisible(true);
}
} 引用第6楼不炫耀会死星人于2006-10-30 20:27发表的“”:
呃 确实是不支持ico呢。。。
说来 awt和swing哪个比较好呢?好似awt都是直接调用系统API而swing是绘制的吧?
这个,貌似Swing出来后就基本没人用awt来写GUI了...
因为awt不仅功能较少,与平台有关(同一个程序在不同的操作系统上运行的外观不一样),而且在不同的平台上可能会有不同的bug。
当然,awt速度快一些。但丑陋很多。
Swing编写的程序可以很方便的切换为 Windows,Mac等风格,还可以自己做。
现在JAVA上写GUI程序一般有两种选择:SUN的标准库Swing以及 IBM的SWT(SWT类似于AWT,速度比Swing快,但非纯Java---用JNI实现的---其它偶也不清楚) 呃 为什么我发现swing严重不符合我的审美观念=v=?要怎么切换风格啊? SWT好似是系统有的就直接调用系统API 没有的就绘制 感觉像是awt和swing的杂和。。。 因为....Swing默认的是SUN做的一种叫Metal的风格....不得不说这种风格很难看....
你在main方法一开始的地方加上这个:
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}catch(Exception e){
}
就会让显示出来的组件以当前平台的风格来显示。
想知道更多的东西,自己去看java文档的UIManager类。
另外,如果你还没装Java6.0,建议装一下,java6.0中加入了“皮肤”的概念...可以按自己喜好比较容易的作出个性化的风格。 呃。。。。6.0。。。。。 当初就是混着用……结果混乱不堪……Java这套东西不好使……
JMenu被Canvas这个组件挡住了=。=怎么办啊?
我在一个JFrame里添加了一个JMenuBar和一个Canvas=。=但是JMenu的弹出菜单被挡到了。。。用Menu就不会被挡住的说 可是用JMenu就被挡到了=v=看不到~ 我是来挖坟的
页:
[1]