扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
import Java.awt.TextField;import javax.swing.JFrame;
成都创新互联公司是专业的椒江网站建设公司,椒江接单;提供成都做网站、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行椒江网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
public class InsertPosition extends JFrame {
InsertPosition(){
setSize(300, 200);
TextField tf=new TextField("cecfagag");
tf.setCaretPosition(5); // 位置可以自由选定
add(tf);
setVisible(true);
}
public static void main(String[] args) {
new InsertPosition();
}
}
java.awt.Component的setCursor方法
setCursor
public void setCursor(Cursor cursor)为指定的光标设置光标图像。当此组件的 contains 方法为当前的光标位置返回 ture,并且此组件是可见的、可显示的并且已启用的,则显示此光标图像。设置 Container 的光标会导致在该容器的所有子组件内显示该光标,那些具有非 null 的光标除外。
如果 Java 平台实现和/或本机系统不支持更改鼠标光标形状,则该方法可能不会产生任何视觉效果。
参数:
cursor - Cursor 类定义的常量之一;如果此参数为 null,则此组件继承其父级的光标
CURSOR构造方法摘要
Cursor(int type)
用指定类型创建一个新的光标对象。
protected Cursor(String name)
用指定名称创建一个新的定制光标对象。
API===
package com.test;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.ImageObserver;
import java.text.AttributedCharacterIterator;
public class GameDemo2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MainWindow mw=new MainWindow();
mw.setSize(400,400);
mw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mw.setVisible(true);
//mw.setResizable(false);
}
}
class MainWindow extends JFrame implements ActionListener{
/**
*
*/
private static final long serialVersionUID = 1L;
NewPanel mp=null;
JButton jbt1;
JButton jbt2;
JButton jbt3;
JButton jbt4;
int flag=-1;
JPanel jp=null;
public MainWindow(){
//初始化组件
mp=new NewPanel();
mp.addMouseListener(mp);
jbt1=new JButton("O 先手");
jbt2=new JButton("X 先手 ");
jbt3=new JButton("RESET");
jbt4=new JButton("EXIT");
jp=new JPanel();
GridLayout gl=new GridLayout(4,1);
gl.setHgap(4);
gl.setVgap(5);
jp.setLayout(gl);
jp.add(jbt1);
jp.add(jbt2);
jp.add(jbt3);
jp.add(jbt4);
this.add(mp,BorderLayout.CENTER);
this.add(jp,BorderLayout.EAST);
jbt1.addActionListener(this);
jbt2.addActionListener(this);
jbt3.addActionListener(this);
jbt4.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==jbt1){
flag=1;
mp.setHand(0);
jbt1.setEnabled(false);
jbt2.setEnabled(false);
}
if(e.getSource()==jbt2){
flag=2;
mp.setHand(1);
jbt1.setEnabled(false);
jbt2.setEnabled(false);
}
if(e.getSource()==jbt3){
flag=3;
mp.getGraphics().dispose();
this.remove(mp);
mp=new NewPanel();
this.add(mp,BorderLayout.CENTER);
mp.addMouseListener(mp);
this.remove(jp);
jp=new JPanel();
GridLayout gl=new GridLayout(4,1);
gl.setHgap(4);
gl.setVgap(5);
jp.setLayout(gl);
jp.add(jbt1);
jp.add(jbt2);
jp.add(jbt3);
jp.add(jbt4);
this.add(jp,BorderLayout.EAST);
this.validate();
jbt1.setEnabled(true);
jbt2.setEnabled(true);
}
if(e.getSource()==jbt4){
flag=4;
jbt1.setEnabled(false);
jbt2.setEnabled(false);
System.exit(0);
}
}
public int getFlag(){
return flag;
}
}
//画板
class NewPanel extends JPanel implements MouseListener{
/**
*
*/
private static final long serialVersionUID = 1L;
//记录画图的位置
int xx,yy;
//flag表示是否是初始化
int flag;
//0画X,1画0,2不画
int kind;
//记录是有有图形的数组
//a[i]=0代表是空白可以画 a[i]=1代表X a[i]=2代表画O
int []a=null;
//记录当前鼠标位置所在方格,便于判断是否可以继续画
int curLoc;
//记录谁先手 0-0 1-X
int firstHand;
int times;
//0-O 1-X
int whoWin;
public void setFlag(int f){
flag=f;
}
public void setHand(int h){
firstHand=h;
}
public void setWhoWin(){
whoWin=-1;
}
public NewPanel(){
xx=0;
yy=0;
flag=0;
a=new int[9];
kind=-1;
curLoc=0;
whoWin=-1;
firstHand=-1;
times=1;
whoWin=-1;
}
public void paint(Graphics g){
//super.paint(g);
g.drawRect(0, 0, 300, 300);
g.drawRect(0, 100, 300, 100);
g.drawRect(100, 0, 100, 300);
if(flag==1){
if(isFull()==false){
if(testWin()==false){
if((times+firstHand)%2==0){
if(a[curLoc]==0){
g.drawLine(xx,yy,xx+60,yy+60);
g.drawLine(xx+60, yy, xx, yy+60);
a[curLoc]=1;
times++;
if(testWin()==true){
System.out.println("X赢了");
}
}
}
if((times+firstHand)%2==1){
if(a[curLoc]==0){
g.drawOval(xx,yy,60,60);
a[curLoc]=2;
times++;
if(testWin()==true){
System.out.println("O赢了");
}
}
}
}
}else{
System.out.println("it is FULL!!!");
}
}
}
//将鼠标的坐标转换为所画图形的基准坐标 ,返回当前鼠标在记录数组a中的下标
//圆形为外接矩形的左上角
//X为左上角起始点的坐标
public int Format(int x,int y,int kind){
//第一行第一列
int loc=-1;
if(x=0x100y=0y100){
xx=20;
yy=20;
loc= 0;
}
//第一行第二列
if(x=100x200y=0y100){
xx=120;
yy=20;
loc= 1;
}
//第一行第三列
if(x=200x300y=0y100){
xx=220;
yy=20;
loc= 2;
}
//第二行第一列
if(x=0x100y=100y200){
xx=20;
yy=120;
loc= 3;
}
//第二行第二列
if(x=100x200y=100y200){
xx=120;
yy=120;
loc= 4;
}
//第二行第三列
if(x=200x300y=100y200){
xx=220;
yy=120;
loc= 5;
}
//第三行第一列
if(x=0x100y=200y300){
xx=20;
yy=220;
loc= 6;
}
//第三行第二列
if(x=100x200y=200y300){
xx=120;
yy=220;
loc= 7;
}
//第三行第三列
if(x=200x300y=200y300){
xx=220;
yy=220;
loc= 8;
}
return loc;
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
xx=e.getX();
yy=e.getY();
flag=1;
//kind=new Random().nextInt(3);
curLoc=Format(xx,yy,kind);
this.repaint();
}
//判断是否可以继续画的函数
public boolean isFull(){
for(int i=0;i9;i++)
if(a[i]!=1a[i]!=2)
return false;
return true;
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
public boolean testWin(){
boolean isWin=false;
//a[0]=1
if(a[0]!=0a[0]==a[1]a[0]==a[2]){
whoWin=a[0];
isWin=true;
}
if(a[0]!=0a[3]==a[0]a[0]==a[6]){
whoWin=a[0];
isWin=true;
}
if(a[0]!=0a[0]==a[4]a[0]==a[8]){
whoWin=a[0];
isWin=true;
}
if(a[1]!=0a[1]==a[4]a[1]==a[7]){
whoWin=a[1];
isWin=true;
}
if(a[2]!=0a[2]==a[4]a[2]==a[6]){
whoWin=a[2];
isWin=true;
}
if(a[2]!=0a[2]==a[5]a[2]==a[8]){
whoWin=a[2];
isWin=true;
}
if(a[3]!=0a[3]==a[4]a[3]==a[5]){
whoWin=a[3];
isWin=true;
}
if(a[6]!=0a[6]==a[7]a[6]==a[8]){
whoWin=a[6];
isWin=true;
}
return isWin;
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
//重新设置初始值
public void reset(){
this.getGraphics().dispose();
xx=0;
yy=0;
flag=0;
a=new int[9];
kind=-1;
curLoc=0;
whoWin=-1;
firstHand=-1;
times=1;
whoWin=-1;
}
}
javaFx程序运行,光标(焦点)默认显示在最上行的TextField上。
这样我就无法看到输入框的提示字符...
解决方法:
//注册
Button btn = new Button("登录");
HBox hBox = new HBox(10);
hBox.setAlignment(Pos.BOTTOM_RIGHT);
hBox.getChildren().add(btn);
grid.add(hBox, 2, 5);
Scene scene = new Scene(grid, 300, 275);
btn.requestFocus(); //让登录按钮获取焦点
btn.requestFocus(); //一定要在new Scene(grid, 300, 275)之后调用(聪明的你已经猜到使Scene初始化的缘由啦!谈不上好与坏,默认有光标不挺好的,没有的话,不显得javaFx比较2不是哈哈哈)
btn.requestFocus(); 替换为hBox.requestFocus(); 则看不到光标啦!
需要的才是最好的!(第一次在百度上回答问题...百度半天无结果...啊哈哈哈2019年5月3日23点23分)
解决方案1:
jTextArea1;
好像就这两个函数吧.setSelectionEnd(pos)。jTextArea1.setSelectionStart(pos)
解决方案2:
a.requestFocus
你看看textArea的属性里有
如果你是刚刚打开一个窗口就要让textArea获得焦点,可以在打开窗口的事件里添加a。requesFocus
解决方案3:
setSelectionStart
1.获得文本框中当前光标的位置 这个可以通过getCaretPosition()方法得到 2.输出文本到当前位置 这个分为两个步骤:1.拼接字符串 2.输出 如: Java代码 // 获得当前光标位置 int cur = show.getCaretPosition(); // 得到光标之后的字符串 String ta
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流