java swing -1

Java Swing与AWT组件混用及布局技巧
本文详细介绍了Java中Swing和AWT组件的使用注意事项,特别是它们不能混用的原因以及如何避免组件遮挡问题。通过实例展示了如何在不同像素的显示器上使顶层窗口在屏幕中央显示,并探讨了将菜单按钮添加到组件上的方法以及面板的使用。最后,文章还提到了编译错误的解决方案和事件处理的初步介绍。

java中swing和awt是不能混用的 ,会容易出现组件的遮挡问题。

顶层窗口--框架。swing组件中的该组件是JFrame,诸多窗体常用方法,要常翻阅帮助文档。

窗体初始像素0*0,需要设置显示尺寸,对于不同像素的显示器,显示效果可能不同,为了能达到相同的效果,需要用Toolkit获得设备的屏幕分辨率。

如下例子:

import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;

import javax.swing.JFrame;


public class CenterFrame {

	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		JFrame frame=new Frame();
		frame.addWindowListener(new WindowAdapter() {
		public void windowClosing(){
			System.exit(0);
		}
		});
		frame.setVisible(true);
	}
	}
	class Frame extends JFrame{
		Frame(){
			setTitle("本窗口在屏幕中央显示");
			Toolkit toolkit=Toolkit.getDefaultToolkit();//获得工具类
			Dimension screensizeDimension=toolkit.getScreenSize();//获得显示器尺寸
			int screenHeight=screensizeDimension.height;
			int screenWidth=screensizeDimension.width;
			setSize(screenWidth/2,screenHeight/2);
			setLocation( screenWidth/4,screenHeight/4);
			this.repaint();//重绘窗体
			
			
		}
		
	}

将菜单按钮添加到一个组件上,然后这个组件添加到窗体上,这种组件存放 的几何叫做--------面板。

panel{1:可以在上边完成绘制工作 2:存放其它组件}

实现它的两个步骤:

{1:定义一个类继承panel类 2:重写paintComponent方法}

import java.awt.Container;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;

import javax.swing.JFrame;
import javax.swing.JPanel;


public class UsePanel {

	public static void main(String[] args) {
        
        PanelFrame panelFrame=new PanelFrame();
		panelFrame.addWindowListener(new WindowAdapter() {
			public void windowClosing(){
				
				System.exit(0);
			}
		});
	}
	class PanelFrame extends JFrame{
		public PanelFrame(){
			setTitle("使用面板");
			setSize(400, 300);
			setVisible(true);
			JPanel jPanel=new Mypanel();
			Container container=getContentPane();
			container.add(jPanel);
		}
	}
	
	class Mypanel extends JPanel{
		public void paintComponent(Graphics g){
			g.drawString("我是显示在面板上的信息哟", 120, 100);
			
		}
		
	}
}

 编译时出现了错误No enclosing instance of type UsePanel is accessible. Must qualify the alloc。

下一节看事件处理。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值