实验8 javaFX程序设计Word格式文档下载.docx
- 文档编号:21103774
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:25
- 大小:223.44KB
实验8 javaFX程序设计Word格式文档下载.docx
《实验8 javaFX程序设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实验8 javaFX程序设计Word格式文档下载.docx(25页珍藏版)》请在冰豆网上搜索。
importjavax.swing.JLabel;
publicclassTestextendsJFrameimplementsMouseListener{
privateJLabellabel=newJLabel("
你好"
);
privateJButtonbtn=newJButton("
OK"
publicTest(){
setLayout(newGridLayout(2,1));
setBounds(200,200,250,250);
add(label);
add(btn);
btn.addMouseListener(this);
super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
pack();
}
publicstaticvoidmain(String[]args){
newTest();
newThread(()->
newTest()).start();
publicvoidmouseClicked(MouseEvente){
if(label.getText().equals("
)){
label.setText("
再见"
}else{
}
publicvoidmouseEntered(MouseEvente){}
publicvoidmouseExited(MouseEvente){}
publicvoidmousePressed(MouseEvente){}
publicvoidmouseReleased(MouseEvente){}
}
运行结果贴图:
2.编程包含一个文本框和一个文本区域,文本框内容改变时,将文本框中的内容显示在文本区域中;
在文本框中按回车键时,清空文本区域的内容。
packagesd2;
importjava.awt.Color;
importjava.awt.event.KeyEvent;
importjava.awt.event.KeyListener;
importjavax.swing.JPanel;
importjavax.swing.JTextArea;
importjavax.swing.JTextField;
importjavax.swing.border.TitledBorder;
publicclassShowTextextendsJFrame{
privatestaticfinallongserialVersionUID=1L;
privateJTextFieldtext1;
privateJTextAreatext2;
publicShowText(){
super("
TetxShow"
JPanelp1=newJPanel();
p1.setBackground(Color.WHITE);
p1.setBorder(newTitledBorder("
文本框"
));
text1=newJTextField(10);
text1.addKeyListener(newTextListener());
p1.add(text1);
JPanelp2=newJPanel();
p2.setBackground(Color.WHITE);
p2.setBorder(newTitledBorder("
文本区域"
text2=newJTextArea("
原文本"
10,10);
text2.setLineWrap(true);
text2.setEditable(false);
p2.add(text2);
setLayout(newGridLayout(2,1,0,5));
add(p1);
add(p2);
setSize(200,200);
this.setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
privateclassTextListenerimplementsKeyListener{
publicvoidkeyPressed(KeyEvente){}
publicvoidkeyReleased(KeyEvente){
if(e.getKeyChar()!
=KeyEvent.VK_ENTER)
text2.setText(text1.getText());
}
publicvoidkeyTyped(KeyEvente){
if(e.getKeyChar()==KeyEvent.VK_ENTER)
text2.setText(null);
publicstaticvoidmain(String[]args){JFrameframe=newShowText();
3.编程包含一个复选按钮和一个普通按钮,复选按钮选中时,普通按钮的背景色为青色,未选中时为灰色。
packagesd3;
importjava.awt.event.ItemEvent;
importjava.awt.event.ItemListener;
importjavax.swing.JCheckBox;
publicclassChangeButtonColorextendsJFrame{
privateJButtonbutton;
privateJCheckBoxcheckBox;
publicChangeButtonColor(){
super("
改变按钮颜色"
JPanelp1=newJPanel();
p1.setBackground(Color.WHITE);
setLayout(newGridLayout(2,1));
button=newJButton("
Hello"
button.setSize(20,20);
button.setBackground(Color.GRAY);
p1.add(button);
JPanelp2=newJPanel();
p2.setBackground(Color.BLUE);
checkBox=newJCheckBox();
checkBox.addItemListener(newcheckBoxListener());
p2.add(checkBox);
add(p1);
add(p2);
setSize(200,200);
setVisible(true);
this.setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
privateclasscheckBoxListenerimplementsItemListener{
publicvoiditemStateChanged(ItemEvente){
if(checkBox.isSelected())
button.setBackground(Color.CYAN);
else
}
publicstaticvoidmain(String[]args){
ChangeButtonColorb=newChangeButtonColor();
4.编程显示当前鼠标的位置坐标。
packagesd4;
importjava.awt.event.MouseMotionListener;
publicclassLocateMouseextendsJFrame{
privateJButtonlocation;
publicLocateMouse(){
寻找鼠标位置"
location=newJButton("
显示鼠标位置"
location.setSize(20,10);
add(location);
location.addMouseMotionListener(newMouseMotionListener(){
publicvoidmouseDragged(MouseEvente){}
publicvoidmouseMoved(MouseEvente){
location.setText("
鼠标在("
+e.getX()+"
"
+e.getY()+"
)"
});
setSize(300,200);
setLocationRelativeTo(null);
location.setBackground(Color.WHITE);
LocateMousemouse=newLocateMouse();
5.编写程序,实现使用键盘上的上下左右箭头控制界面上图片的移动。
移动到边界时从界面另一侧出现。
移动过程中显示另一个图片,停止时恢复原来的图片。
packagesd5;
importjavax.swing.ImageIcon;
publicclassMoveImageextendsJFrame{
privateImageIcononeIcon=newImageIcon("
C:
\\Users\\潘\\Desktop\\timg.jpg"
privateImageIcontwoIcon=newImageIcon("
\\Users\\潘\\Pictures\\CameraRoll\\1.jpg"
privateJLabellabel;
JPanelp;
publicMoveImage(){
Image移动"
setSize(500,500);
label=newJLabel(oneIcon);
p=newJPanel();
setContentPane(p);
p.setLayout(null);
this.addKeyListener(newPanelListener());
label.setBounds(0,0,100,100);
p.add(label);
p.setBackground(Color.WHITE);
privateclassPanelListenerimplementsKeyListener{
publicvoidkeyPressed(KeyEvente){
label.setIcon(twoIcon);
intx=label.getX();
inty=label.getY();
intw=p.getWidth();
inth=p.getHeight();
if(e.getKeyCode()==KeyEvent.VK_UP){
--y;
if(y<
=0)
y=h;
label.setBounds(x,y,100,100);
elseif(e.getKeyCode()==KeyEvent.VK_DOWN){
++y;
if(y>
=h)
y=0;
elseif(e.getKeyCode()==KeyEvent.VK_LEFT){
x--;
if(x<
x=w;
}elseif(e.getKeyCode()==KeyEvent.VK_RIGHT){
x++;
if(x>
=w)
x=0;
publicvoidkeyReleased(KeyEvente){
if(e.getKeyCode()==KeyEvent.VK_UP||e.getKeyCode()==KeyEvent.VK_DOWN||e.getKeyCode()==KeyEvent.VK_LEFT||e.getKeyCode()==KeyEvent.VK_RIGHT)
label.setIcon(oneIcon);
publicvoidkeyTyped(KeyEvente){}
}
publicstaticvoidmain(String[]args){
MoveImagem=newMoveImage();
移动前
移动中
移动后
移动末尾
6绘制如下形式的一个二叉树。
packagetree;
importjava.awt.Font;
importjava.awt.Graphics;
importjava.util.List;
@SuppressWarnings("
serial"
)
publicclassTreePanelextendsJPanel{
privateNodetree;
//保存整棵树
privateintnodeWidth=20;
//每个结点的宽度
privateintnodeHeight=20;
//每个结点的高度
privateintvDistance=50;
//每2个结点的垂直距离
privateinthDIstance=30;
//每2个结点的水平距离
privateintstartY=200;
//根结点的Y,默认距离顶部200像素
privateintstartX=0;
//根结点的X,默认水平居中对齐
privateintchildAlignWays;
//子对齐方式
publicstaticintCHILD_ALIGN_ABSOLUTE=0;
//相对Panel居中
publicstaticintCHILD_ALIGN_RELATIVE=1;
//相对父结点居中
privateFontfont=newFont("
微软雅黑"
Font.BOLD,20);
//描述结点的字体
privateColornodeColor=Color.WHITE;
//结点背景颜色
privateColorlinkLineColor=Color.BLACK;
//结点连线颜色
privateColorstringColor=Color.BLACK;
//结点描述文字的颜色
//默认构造
publicTreePanel(){
this(null,CHILD_ALIGN_ABSOLUTE);
//根据传入的Node绘制树,以绝对居中的方式绘制
//@paramn要绘制的树
publicTreePanel(Noden){
this(n,CHILD_ALIGN_ABSOLUTE);
/**
1设置要绘制时候的对齐策略
2@paramchildAlignWays对齐策略
3@seetree.TreePanel#CHILD_ALIGN_RELATIVE
4@seetree.TreePanel#CHILD_ALIGN_ABSOLUTE
*/
publicTreePanel(intchildAlignWays){
this(null,childAlignWays);
1根据子对齐策略childAlignWays绘制的树的根结点n
2@paramn要绘制的树的根结点
3@paramchildAlignWays对齐策略
publicTreePanel(Noden,intchildAlignWays){
super();
//setTree(n);
this.childAlignWays=childAlignWays;
1设置用于绘制的树
2@paramn用于绘制的树的
publicvoidsetTree(Noden){
tree=n;
//重写,调用自己的绘制方法
publicvoidpaintComponent(Graphicsg){
startX=(getWidth()-nodeWidth)/2;
super.paintComponent(g);
g.setFont(font);
drawAllNode(tree,startX,g);
1递归绘制整棵树
2@paramn被绘制的Node
3@paramxPos根节点的绘制X位置
4@paramg绘图上下文环境
publicStringtoString(){
return"
a"
;
publicvoiddrawAllNode(Noden,intx,Graphicsg){
inty=n.getLayer()*(vDistance+nodeHeight)+startY;
intfontY=y+nodeHeight-4;
g.setColor(nodeColor);
g.fillRect(x,y,nodeWidth,nodeHeight);
//画结点的格子
g.setColor(stringColor);
g.drawString(n.getName(),x,fontY);
//画结点的名字
if(n.hasChild()){
List<
Node>
c=n.getChilds();
intsize=n.getChilds().size();
inttempPosx=childAlignWays==CHILD_ALIGN_RELATIVE
?
x+no
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验8 javaFX程序设计 实验 javaFX 程序设计