java腳本:意思是 javaScript 這門腳本語言。與java 沒有關(guān)系。
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供施甸網(wǎng)站建設(shè)、施甸做網(wǎng)站、施甸網(wǎng)站設(shè)計、施甸網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、施甸企業(yè)網(wǎng)站模板建站服務(wù),十余年施甸做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
要了解javascript 點擊
用java繪制弧形文字的方法是調(diào)用java 2d圖形處理的api實現(xiàn)的。
完整代碼如下:
// 引入需要的jar包
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
//定義一個類
public class FontPanel extends JPanel {
//定義一個畫板,入?yún)⑹菆D形g
public void paintComponent(Graphics g) {
super.paintComponent(g);
Font f = new Font("SansSerif", Font.BOLD, 14); 設(shè)置字體加粗
Font fi = new Font("SansSerif", Font.BOLD + Font.ITALIC, 14);設(shè)置字體加粗,斜體
FontMetrics fm = g.getFontMetrics(f); //得到當(dāng)前的font metrics
FontMetrics fim = g.getFontMetrics(fi);//得到當(dāng)前的font metrics
String s1 = "Java ";
String s2 = "Source and Support"; 定義字符串
String s3 = " java 字體變形學(xué)習(xí)";
int width1 = fm.stringWidth(s1); 設(shè)置寬度
int width2 = fim.stringWidth(s2);
int width3 = fm.stringWidth(s3);
Dimension d = getSize(); 設(shè)置二維圖形的維度
int cx = (d.width - width1 - width2 - width3) / 2; 計算繪制字體的x軸
int cy = (d.height - fm.getHeight()) / 2 + fm.getAscent();計算繪制字體的y軸
g.setFont(f);
g.drawString(s1, cx, cy);
cx += width1;
g.setFont(fi);
g.drawString(s2, cx, cy);
cx += width2;
g.setFont(f);
g.drawString(s3, cx, cy);
}
main方法測試:
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setTitle("NotHelloWorld2");
frame.setSize(350, 200);
frame.addWindowListener(new WindowAdapter() {
?public void windowClosing(WindowEvent e) {
? ?System.exit(0);
?}
});
Container contentPane = frame.getContentPane();
contentPane.add(new FontPanel());
frame.show();
}
}
運行結(jié)果:
連連看的小源碼
package Lianliankan;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class lianliankan implements ActionListener
{
JFrame mainFrame; //主面板
Container thisContainer;
JPanel centerPanel,southPanel,northPanel; //子面板
JButton diamondsButton[][] = new JButton[6][5];//游戲按鈕數(shù)組
JButton exitButton,resetButton,newlyButton; //退出,重列,重新開始按鈕
JLabel fractionLable=new JLabel("0"); //分?jǐn)?shù)標(biāo)簽
JButton firstButton,secondButton; //分別記錄兩次被選中的按鈕
int grid[][] = new int[8][7];//儲存游戲按鈕位置
static boolean pressInformation=false; //判斷是否有按鈕被選中
int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戲按鈕的位置坐標(biāo)
int i,j,k,n;//消除方法控制
public void init(){
mainFrame=new JFrame("JKJ連連看");
thisContainer = mainFrame.getContentPane();
thisContainer.setLayout(new BorderLayout());
centerPanel=new JPanel();
southPanel=new JPanel();
northPanel=new JPanel();
thisContainer.add(centerPanel,"Center");
thisContainer.add(southPanel,"South");
thisContainer.add(northPanel,"North");
centerPanel.setLayout(new GridLayout(6,5));
for(int cols = 0;cols 6;cols++){
for(int rows = 0;rows 5;rows++ ){
diamondsButton[cols][rows]=new JButton(String.valueOf(grid[cols+1][rows+1]));
diamondsButton[cols][rows].addActionListener(this);
centerPanel.add(diamondsButton[cols][rows]);
}
}
exitButton=new JButton("退出");
exitButton.addActionListener(this);
resetButton=new JButton("重列");
resetButton.addActionListener(this);
newlyButton=new JButton("再來一局");
newlyButton.addActionListener(this);
southPanel.add(exitButton);
southPanel.add(resetButton);
southPanel.add(newlyButton);
fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())));
northPanel.add(fractionLable);
mainFrame.setBounds(280,100,500,450);
mainFrame.setVisible(true);
}
public void randomBuild() {
int randoms,cols,rows;
for(int twins=1;twins=15;twins++) {
randoms=(int)(Math.random()*25+1);
for(int alike=1;alike=2;alike++) {
cols=(int)(Math.random()*6+1);
rows=(int)(Math.random()*5+1);
while(grid[cols][rows]!=0) {
cols=(int)(Math.random()*6+1);
rows=(int)(Math.random()*5+1);
}
this.grid[cols][rows]=randoms;
}
}
}
public void fraction(){
fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())+100));
}
public void reload() {
int save[] = new int[30];
int n=0,cols,rows;
int grid[][]= new int[8][7];
for(int i=0;i=6;i++) {
for(int j=0;j=5;j++) {
if(this.grid[i][j]!=0) {
save[n]=this.grid[i][j];
n++;
}
}
}
n=n-1;
this.grid=grid;
while(n=0) {
cols=(int)(Math.random()*6+1);
rows=(int)(Math.random()*5+1);
while(grid[cols][rows]!=0) {
cols=(int)(Math.random()*6+1);
rows=(int)(Math.random()*5+1);
}
this.grid[cols][rows]=save[n];
n--;
}
mainFrame.setVisible(false);
pressInformation=false; //這里一定要將按鈕點擊信息歸為初始
init();
for(int i = 0;i 6;i++){
for(int j = 0;j 5;j++ ){
if(grid[i+1][j+1]==0)
diamondsButton[i][j].setVisible(false);
}
}
}
public void estimateEven(int placeX,int placeY,JButton bz) {
if(pressInformation==false) {
x=placeX;
y=placeY;
secondMsg=grid[x][y];
secondButton=bz;
pressInformation=true;
}
else {
x0=x;
y0=y;
fristMsg=secondMsg;
firstButton=secondButton;
x=placeX;
y=placeY;
secondMsg=grid[x][y];
secondButton=bz;
if(fristMsg==secondMsg secondButton!=firstButton){
xiao();
}
}
}
public void xiao() { //相同的情況下能不能消去。仔細(xì)分析,不一條條注釋
if((x0==x (y0==y+1||y0==y-1)) || ((x0==x+1||x0==x-1)(y0==y))){ //判斷是否相鄰
remove();
}
else{
for (j=0;j7;j++ ) {
if (grid[x0][j]==0){ //判斷第一個按鈕同行哪個按鈕為空
if (yj) { //如果第二個按鈕的Y坐標(biāo)大于空按鈕的Y坐標(biāo)說明第一按鈕在第二按鈕左邊
for (i=y-1;i=j;i-- ){ //判斷第二按鈕左側(cè)直到第一按鈕中間有沒有按鈕
if (grid[x][i]!=0) {
k=0;
break;
}
else{ k=1; } //K=1說明通過了第一次驗證
}
if (k==1) {
linePassOne();
}
}
if (yj){ //如果第二個按鈕的Y坐標(biāo)小于空按鈕的Y坐標(biāo)說明第一按鈕在第二按鈕右邊
for (i=y+1;i=j ;i++ ){ //判斷第二按鈕左側(cè)直到第一按鈕中間有沒有按鈕
if (grid[x][i]!=0){
k=0;
break;
}
else { k=1; }
}
if (k==1){
linePassOne();
}
}
if (y==j ) {
linePassOne();
}
}
if (k==2) {
if (x0==x) {
remove();
}
if (x0x) {
for (n=x0;n=x-1;n++ ) {
if (grid[n][j]!=0) {
k=0;
break;
}
if(grid[n][j]==0 n==x-1) {
remove();
}
}
}
if (x0x) {
for (n=x0;n=x+1 ;n-- ) {
if (grid[n][j]!=0) {
k=0;
break;
}
if(grid[n][j]==0 n==x+1) {
remove();
}
}
}
}
}
for (i=0;i8;i++ ) { //列
if (grid[i][y0]==0) {
if (xi) {
for (j=x-1;j=i ;j-- ) {
if (grid[j][y]!=0) {
k=0;
break;
}
else { k=1; }
}
if (k==1) {
rowPassOne();
}
}
if (xi) {
for (j=x+1;j=i;j++ ) {
if (grid[j][y]!=0) {
k=0;
break;
}
else { k=1; }
}
if (k==1) {
rowPassOne();
}
}
if (x==i) {
rowPassOne();
}
}
if (k==2){
if (y0==y) {
remove();
}
if (y0y) {
for (n=y0;n=y-1 ;n++ ) {
if (grid[i][n]!=0) {
k=0;
break;
}
if(grid[i][n]==0 n==y-1) {
remove();
}
}
}
if (y0y) {
for (n=y0;n=y+1 ;n--) {
if (grid[i][n]!=0) {
k=0;
break;
}
if(grid[i][n]==0 n==y+1) {
remove();
}
}
}
}
}
}
}
public void linePassOne(){
if (y0j){ //第一按鈕同行空按鈕在左邊
for (i=y0-1;i=j ;i-- ){ //判斷第一按鈕同左側(cè)空按鈕之間有沒按鈕
if (grid[x0][i]!=0) {
k=0;
break;
}
else { k=2; } //K=2說明通過了第二次驗證
}
}
if (y0j){ //第一按鈕同行空按鈕在與第二按鈕之間
for (i=y0+1;i=j ;i++){
if (grid[x0][i]!=0) {
k=0;
break;
}
else{ k=2; }
}
}
}
public void rowPassOne(){
if (x0i) {
for (j=x0-1;j=i ;j-- ) {
if (grid[j][y0]!=0) {
k=0;
break;
}
else { k=2; }
}
}
if (x0i) {
for (j=x0+1;j=i ;j++ ) {
if (grid[j][y0]!=0) {
k=0;
break;
}
else { k=2; }
}
}
}
public void remove(){
firstButton.setVisible(false);
secondButton.setVisible(false);
fraction();
pressInformation=false;
k=0;
grid[x0][y0]=0;
grid[x][y]=0;
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==newlyButton){
int grid[][] = new int[8][7];
this.grid = grid;
randomBuild();
mainFrame.setVisible(false);
pressInformation=false;
init();
}
if(e.getSource()==exitButton)
System.exit(0);
if(e.getSource()==resetButton)
reload();
for(int cols = 0;cols 6;cols++){
for(int rows = 0;rows 5;rows++ ){
if(e.getSource()==diamondsButton[cols][rows])
estimateEven(cols+1,rows+1,diamondsButton[cols][rows]);
}
}
}
public static void main(String[] args) {
lianliankan llk = new lianliankan();
llk.randomBuild();
llk.init();
}
}
//old 998 lines
//new 318 lines
package?com.lxi;
import?java.io.BufferedReader;
import?java.io.InputStreamReader;
public?class?Rpg?{
@SuppressWarnings("unchecked")
public?static?void?main(String[]?args)?throws?Exception?{
System.out.println("在這里輸入兩個人物進行PK,以英文逗號分隔:?[BM,DH,MK]");
BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(System.in));
ClassPerson?c1;
ClassPerson?c2;
try?{
String?temp?=?br.readLine();
String[]?str?=?temp.split(",");
if?(str.length?!=?2)?{
throw?new?Exception("輸入格式有誤,按默認(rèn)PK");
}
c1?=?(ClassPerson)?Class.forName("com.lxi."
+?str[0].toUpperCase());
c2?=?(ClassPerson)?Class.forName("com.lxi."
+?str[1].toUpperCase());
}?catch?(Exception?e)?{
//?TODO?Auto-generated?catch?block
c1?=?(ClassPerson)?Class.forName("com.lxi.BM");
c2?=?(ClassPerson)?Class.forName("com.lxi.DH");
}
try?{
Person?p1?=?c1.newInstance();
Person?p2?=?c2.newInstance();
long?time?=?System.currentTimeMillis();
long?nextTime1?=?(long)?(time?+?p1.coldTime*1000);?//
long?nextTime2?=?(long)?(time?+?p2.coldTime*1000);?//發(fā)動攻擊的時間
System.out.println("---游戲開始---");
while?(true)?{
long?currenTime?=?System.currentTimeMillis();
if?(nextTime1??currenTime)?{??//時間到則發(fā)動攻擊
p1.hit(p2);
nextTime1?+=?p1.coldTime*1000?+?p1.waitTime*1000;?//下次攻擊時間=冷卻時間+被暈眩時間
p1.waitTime?=?0;??//回合結(jié)束,重置被暈眩時間為0
}
if?(nextTime2??currenTime)?{
p2.hit(p1);
nextTime2?+=?p2.coldTime*1000?+?p2.waitTime*1000;
p2.waitTime?=?0;
}
}
}?catch?(ClassCastException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}?catch?(InstantiationException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}?catch?(IllegalAccessException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
}
package?com.lxi;
import?java.util.Random;
class?BM?extends?Person?{
public?BM()?{
val?=?650;
coldTime?=?1.5;
fight?=?40;
chanceHit?=?3;
chanceDefense?=?3;
waitTime?=?0;
}
int?count?=?0;???//防御技能發(fā)動的次數(shù)
int?temp?=?40;???//攻擊力,值同fight
boolean?hitFlag?=?false;
boolean?defenseFlag?=?false;
Random?rand?=?new?Random();
public?void?hit(Person?p)?{
if?(rand.nextInt(10)??chanceHit)?{
fight?=?fight?*?2;???//發(fā)動雙倍攻擊
hitFlag?=?true;
}
int?hurt?=?p.defense(this);
p.val?=?p.val?-?hurt;
fight?=?temp;?????//還原為單倍攻擊
if?(p.val?=?0)?{
System.out.println(this.getClass().getSimpleName()?+?"勝出!");
System.exit(0);
}
System.out.println(this.getClass().getSimpleName()?+?"攻擊"
+?p.getClass().getSimpleName()?+?","
+?this.getClass().getSimpleName()
+?(this.hitFlag???"發(fā)動攻擊技能???"?:?"未發(fā)動攻擊技能???")
+?p.getClass().getSimpleName()
+?(this.defenseFlag???"發(fā)動防御技能???"?:?"未發(fā)動防御技能???")
+?this.getClass().getSimpleName()?+?":"?+?this.val?+?","
+?p.getClass().getSimpleName()?+?":"?+?p.val);
hitFlag?=?false;
defenseFlag?=?false;
}
public?int?defense(Person?p)?{
if?(rand.nextInt(10)??chanceDefense)?{
if?(count?!=?0)?{
p.val?=?p.val?-?p.fight;
count++;
defenseFlag?=?true;
if?(p.val?=?0)?{
System.out.println(this.getClass().getSimpleName()?+?"勝出!");
System.exit(0);
}
}
}
return?p.fight;
}
}
class?MK?extends?Person?{
public?MK()?{
val?=?700;
coldTime?=?2.5;
fight?=?50;
chanceDefense?=?6;
chanceHit?=?3;
waitTime?=?0;
}
boolean?hitFlag?=?false;
boolean?defenseFlag?=?false;
Random?rand?=?new?Random();
public?void?hit(Person?p)?{
if?(rand.nextInt(10)??chanceHit)?{
p.waitTime?=?3;???//使對方暈眩3s
hitFlag?=?true;
}
int?hurt?=?p.defense(this);
p.val?=?p.val?-?hurt;
if?(p.val?=?0)?{
System.out.println(this.getClass().getSimpleName()?+?"勝出!");
System.exit(0);
}
System.out.println(this.getClass().getSimpleName()?+?"攻擊"
+?p.getClass().getSimpleName()?+?","
+?this.getClass().getSimpleName()
+?(this.hitFlag???"發(fā)動攻擊技能???"?:?"未發(fā)動攻擊技能???")
+?p.getClass().getSimpleName()
+?(this.defenseFlag???"發(fā)動防御技能???"?:?"未發(fā)動防御技能???")
+?this.getClass().getSimpleName()?+?":"?+?this.val?+?","
+?p.getClass().getSimpleName()?+?":"?+?p.val);
hitFlag?=?false;
defenseFlag?=?false;
}
public?int?defense(Person?p)?{
if?(rand.nextInt(10)??chanceDefense)?{
defenseFlag?=?true;
return?p.fight?/?2;???//防御技能發(fā)動,傷害減半
}
return?p.fight;
}
}
package?com.lxi;
import?java.io.BufferedReader;
import?java.io.InputStreamReader;
import?java.util.Random;
//三個人物的基類
abstract?class?Person?{
int?val;?????????????//生命值
double?coldTime;?????//冷卻時間
int?waitTime;????????//暈眩時間
int?fight;??????????//攻擊力
int?chanceHit;??????//發(fā)起主動技能的概率
int?chanceDefense;??//發(fā)起防御技能的概率
abstract?void?hit(Person?p);???//攻擊技能
abstract?int?defense(Person?p);?//防御技能,返回被傷害點數(shù)
}
class?DH?extends?Person?{
public?DH()?{
val?=?600;
coldTime?=?1.0;
fight?=?30;
chanceHit?=?3;??????//表示30%的概率
chanceDefense?=?3;
waitTime?=?0;
}
Random?rand?=?new?Random();
boolean?hitFlag?=?false;??????//主動技能發(fā)動的標(biāo)識
boolean?defenseFlag?=?false;??//防御技能發(fā)動的標(biāo)識
public?void?hit(Person?p)?{
if?(rand.nextInt(10)??chanceHit)?{??//發(fā)動主動技能
int?hurt?=?p.defense(this);
p.val?=?p.val?-?hurt;
if?(p.val?=?0)?{
System.out.println(this.getClass().getSimpleName()?+?"勝出!");
System.exit(0);
}
val?=?val?+?hurt;
if?(val??600)
val?=?600;
hitFlag?=?true;?????//標(biāo)記主動技能已經(jīng)發(fā)動
}?else?{??//進行普通攻擊
int?hurt?=?p.defense(this);
p.val?=?p.val?-?hurt;
if?(p.val?=?0)?{
System.out.println(this.getClass().getSimpleName()?+?"勝出!");
System.exit(0);
}
}
System.out.println(this.getClass().getSimpleName()?+?"攻擊"
+?p.getClass().getSimpleName()?+?","
+?this.getClass().getSimpleName()
+?(this.hitFlag???"發(fā)動攻擊技能???"?:?"未發(fā)動攻擊技能???")
+?p.getClass().getSimpleName()
+?(this.defenseFlag???"發(fā)動防御技能???"?:?"未發(fā)動防御技能???")
+?this.getClass().getSimpleName()?+?":"?+?this.val?+?","
+?p.getClass().getSimpleName()?+?":"?+?p.val);
hitFlag?=?false;?????//
defenseFlag?=?false;?//重置標(biāo)記,下次重用
}
public?int?defense(Person?p)?{
if?(rand.nextInt(10)??chanceDefense)?{
defenseFlag?=?true;???//標(biāo)記防御技能已經(jīng)發(fā)動
return?0;
}?else?{
return?p.fight;
}
}
}
當(dāng)前題目:java代碼rpg文字 java文字編碼
標(biāo)題來源:http://jinyejixie.com/article22/dosedcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、域名注冊、軟件開發(fā)、網(wǎng)站改版、品牌網(wǎng)站設(shè)計、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)