framejava
‘壹’ java 关于Frame类
当需要扩展Frame的功能或者想在实例化的多做功能的时候,就写上extends frame,
譬如想在实例化Frame的同时设定size
public class MyFrame extends Frame {
public MyFrame(String s, int width, int height) {
super(s);
super.setSize(width, height);
}
}
这样你实例化MyFrame的时候就已经设定好大小了,少写一些代码
public static void main(String args[]){
MyFrame frame = new MyFrame("My Frame", 300, 200);
}
同样功能的不继承,则需要
public static void main(String args[]){
Frame frame = new Frame("My Frame");
frame.setSize(300, 200);
}
clear?
‘贰’ java Frame 显示大小与设置的不同
// 窗口宽度= 内容面板宽+窗口左边框+窗口右边框
// 窗口高度= 内容面板高+窗口上边框+窗口下边框
每个操作系统的边框粗细可能不太一致,你可以先输出看看
参考代码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
//该窗口继承自JFrame.
{
publicDemoFrame(){
setTitle("窗口");//窗口标题
setSize(500+8+8,500+31+8);//窗口大小
//窗口宽度=内容面板宽+窗口左边框+窗口右边框
//窗口高度=内容面板高+窗口上边框+窗口下边框
setLocationRelativeTo(null);//窗口居中
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//通常添加这行代码,点击窗口右下角的关闭时会结束程序
setVisible(true);
Insetsinsets=getInsets();//得到窗口的边界区域。
System.out.println("窗口边框上"+insets.top);//上
System.out.println("窗口边框下"+insets.bottom);//下
System.out.println("窗口边框左"+insets.left);//左
System.out.println("窗口边框右"+insets.right);//右
Dimensiondi=getContentPane().getSize();//内容面板的大小
System.out.println("内容面板宽度"+di.width);//宽
System.out.println("内容面板的高度"+di.height);//高
}
//main方法
publicstaticvoidmain(String[]args){
newDemoFrame();
}
}
‘叁’ java中 frame有哪些属性及方法,(全部的)
自己可以查看JAVA API文档嘛
我把下面的贴出来已经觉得自己很白痴了
http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/awt/Frame.html
-------------------
J2SE5.0 API,可以自己参看DOC
字段摘要
static int CROSSHAIR_CURSOR
已过时。 由 Cursor.CROSSHAIR_CURSOR 取代。
static int DEFAULT_CURSOR
已过时。 由 Cursor.DEFAULT_CURSOR 取代。
static int E_RESIZE_CURSOR
已过时。 由 Cursor.E_RESIZE_CURSOR 取代。
static int HAND_CURSOR
已过时。 由 Cursor.HAND_CURSOR 取代。
static int ICONIFIED
此状态位指示将 frame 图标化。
static int MAXIMIZED_BOTH
此状态位掩码指示将 frame 完全最大化(水平和垂直方向)。
static int MAXIMIZED_HORIZ
此状态位指示在水平方向将 frame 最大化。
static int MAXIMIZED_VERT
此状态位指示在垂直方向将 frame 最大化。
static int MOVE_CURSOR
已过时。 由 Cursor.MOVE_CURSOR 取代。
static int N_RESIZE_CURSOR
已过时。 由 Cursor.N_RESIZE_CURSOR 取代。
static int NE_RESIZE_CURSOR
已过时。 由 Cursor.NE_RESIZE_CURSOR 取代。
static int NORMAL
Frame 处于 "normal" 状态。
static int NW_RESIZE_CURSOR
已过时。 由 Cursor.NW_RESIZE_CURSOR 取代。
static int S_RESIZE_CURSOR
已过时。 由 Cursor.S_RESIZE_CURSOR 取代。
static int SE_RESIZE_CURSOR
已过时。 由 Cursor.SE_RESIZE_CURSOR 取代。
static int SW_RESIZE_CURSOR
已过时。 由 Cursor.SW_RESIZE_CURSOR 取代。
static int TEXT_CURSOR
已过时。 由 Cursor.TEXT_CURSOR 取代。
static int W_RESIZE_CURSOR
已过时。 由 Cursor.W_RESIZE_CURSOR 取代。
static int WAIT_CURSOR
已过时。 由 Cursor.WAIT_CURSOR 取代。
从类 java.awt.Component 继承的字段
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
从接口 java.awt.image.ImageObserver 继承的字段
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
构造方法摘要
Frame()
构造 Frame 的一个新实例(初始时不可见)。
Frame(GraphicsConfiguration gc)
使用屏幕设备的指定 GraphicsConfiguration 创建一个 Frame。
Frame(String title)
构造一个新的、初始不可见的、具有指定标题的 Frame 对象。
Frame(String title, GraphicsConfiguration gc)
构造一个新的、初始不可见的、具有指定标题和 GraphicsConfiguration 的 Frame 对象。
方法摘要
void addNotify()
通过将此 Frame 连接到本机屏幕资源,从而使其成为可显示的。
protected void finalize()
移除输入方法和上下文,并从 AppContext 中移除此 Frame。
AccessibleContext getAccessibleContext()
获取与此 Frame 有关的 AccessibleContext。
int getCursorType()
已过时。 从 JDK version 1.1 开始,由 Component.getCursor() 取代。
int getExtendedState()
获取此 frame 的状态。
static Frame[] getFrames()
返回一个数组,包含由应用程序创建的所有 Frame。
Image getIconImage()
获取此 frame 显示在最小化图标中的图像。
Rectangle getMaximizedBounds()
获取此 frame 的最大化边界。
MenuBar getMenuBar()
获取此 frame 的菜单栏。
int getState()
获取此 frame 的状态(已废弃)。
String getTitle()
获得 frame 的标题。
boolean isResizable()
指示此 frame 是否可由用户调整大小。
boolean isUndecorated()
指示此 frame 是否未装饰。
protected String paramString()
返回表示此 Frame 状态的字符串。
void remove(MenuComponent m)
从此 frame 移除指定的菜单栏。
void removeNotify()
通过移除与本机屏幕资源的连接,将此 Frame 设置为不可显示的。
void setCursor(int cursorType)
已过时。 从 JDK version 1.1 开始,由 Component.setCursor(Cursor) 取代。
void setExtendedState(int state)
设置此 frame 的状态。
void setIconImage(Image image)
设置此 frame 要显示在最小化图标中的图像。
void setMaximizedBounds(Rectangle bounds)
设置此 frame 的最大化边界。
void setMenuBar(MenuBar mb)
将此 frame 的菜单栏设置为指定的菜单栏。
void setResizable(boolean resizable)
设置此 frame 是否可由用户调整大小。
void setState(int state)
设置此 frame 的状态(已废弃)。
void setTitle(String title)
将此 frame 的标题设置为指定的字符串。
void setUndecorated(boolean undecorated)
禁用或启用此 frame 的装饰。
从类 java.awt.Window 继承的方法
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationByPlatform, setLocationRelativeTo, show, toBack, toFront
从类 java.awt.Container 继承的方法
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, , isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, , setFont, setLayout, transferFocusBackward, transferFocusDownCycle, update, validate, validateTree
从类 java.awt.Component 继承的方法
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
从类 java.lang.Object 继承的方法
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
从接口 java.awt.MenuContainer 继承的方法
getFont, postEvent
‘肆’ Java 的Frame和Panel的区别
[Panel]
Panel is the simplest container class. A panel provides space in which an ap
plication can attach any other component, including other panels.
<详见java.awt.Panel>
<注意:以下大写指类,小写泛指对象,比如Frame指Frame类,frame泛指Frame对象。>
好象是看出区别了:Frame是Window的子类,一个Frame对象就是一个有标题有边界
的顶层窗口。Panel是最简单的容器类,是Container的子类。一个Panel对象就是要给应
用程序提供空间,用来添加组件,包括其它的Panel对象。
追本溯源,其实Frame和Panel还是有些亲戚关系的:Frame是Window的直接子类,W
indow又是Container的直接子类,而Panel是Container的直接子类,它们都是从Contai
ner里扩展出来的,是叔侄关系。它们的老祖宗是Component(Container是Component的
子类),Component是基类,回溯本源到此为止,已经是根了。
Frame和Panel都是容器类,那么它们在使用上有什么区别呢?
你可以创建一个panel对象,在上面添加组件,比如单独建立一个TestPanel.java
的源文件(TestPanel extends Panel)。但是因为Panel不是顶层容器,所以你不能直
接显示你创建的这个panel对象,必须装在顶层容器里比如嵌入一个frame里,才能显示
。(为什么Frame对象可以直接显示,而Panel对象不能,文章最后有解释。)
Frame是顶层容器,一般不单独使用(注意只是一般,还是可以直接嵌入组件的),而是
习惯在frame里嵌入panel,再在panel上面添加组件。你在用Jbuilder创建一个Applica
tion(比如TestApp和TestAppFrame)的时候,在你的框架文件TestAppFrame里就会自动
生成一个叫contentPane的JPanel对象。
Panel是一般容器,可以自身嵌套(比如在panel1里嵌入panel2);但Frame已经是
顶层容器了,自身不能嵌套。
我们用得最多的JFrame和JPanel,就是Frame和Panel在Swing下的扩展(JFrame是Fr
ame子类和JPanel是Panel的子类)。
我们用Jbuilder创建Application时会自动生成一些代码,其中的frame.pack()一句
是什么意思?<注:frame是一个已生成的框架类对象>
我们在java.awt.Frame的源文件里找不到pack()方法的定义。看了java.awt.Window
才知
道,原来在Window类里定义了pack()和show()两个显示窗口的方法,被Frame继承了过来
。这可能也是panel无法单独使用的一个原因吧,Panel和它的直接超类Container里,都
没有定义类似pack()和show()的显示容器的方法。
‘伍’ Java中frame w=new frame什么意思
java中new关键字是用来创建对象实例的。
frame
w=new
frame();应该是创建一个frame类的实例吧。
如果是JFrame
w
=
new
JFrame();就是用来创建一个
窗体对象
实例w。JFrame是java类库提供的类,用来创建
图形界面
窗体。
‘陆’ Java Panel与Frame
Frame是框架窗体,有边框的,Panel是面板,无边框,一般把几个Panel加到一个Frame上
Sun公司的定义:Frame是带标题和边框的最顶层窗体;Panel是个最简单的容器类,它提供空间让程序放其它组件,包括其它Panel。
添加到容器中的组件放在一个列表中。列表的顺序将定义组件在容器内的正向堆栈顺序。如果将组件添加到容器中时未指定索引,则该索引将被添加到列表尾部(此后它位于堆栈顺序的底部)。
public Component getComponent(int n) 获得此容器中的第 n 个组件。public Component[] getComponents() 获得此容器中的所有组件。
这样可以么?
‘柒’ JAVA中,Frame和Panel默认的布局管理器分别是什么类型
JAVA中,Framel默认的布局管理器是BorderLayout类型,Panel默认的布局管理器是FlowLayout类型。
FlowLayout是Panel 和 Applet 的默认布局管理器。在该布局管理器中,组件在容器中按照从上到下,从左到右的顺序进行排列,行满后则换行。
BorderLayout是Window、Frame和Dialog的默认布局管理器,其将容器分成North、South、East、West和Center 5个区域,每个区域只能放置一个组件。使用BorderLayout时,如果容器大小发生变换,组件的相对位置不变。
(7)framejava扩展阅读:
其它相关的布局管理器:
1、网格布局管理器(GridLayout):
GridLayout 可使容器中的各个组件呈网格状布局,平局占据容器的空间,即使容器的大小发生变化,每个组件还是平均占据容器的空间。和FlowLayout一样,GridLayout也是按照从上到下,从左到右的规律进行排列的。
2、卡片布局管理器(CardLayout):
CardLayout能够帮助用户处理两个乃至跟多的成员共享同一显示空间。它把容器分成许多层,每层的显示空间占据整个容器的大小,并且每层之允许反之一个组件,可以通过Panel来实现每层复杂的用户界面。
‘捌’ java怎么让框架frame透明
这个类确实是JDK1.6才出来的,在com.sun.awt.AWTUtilities
我看了1.5的包里,没有这个类
这个类是在jre里
你的Myeclipse里如果没有的话啊2个可能
1.你的jdk版本低,需要升级到1.6以上
2.你的myEclipse用的是他自己带的JDK,需要在修改一下
最好能截屏确认一下