📄 fejstfrm.java
字号:
}
public void mouseExited(MouseEvent mouseevent)
{
}
public void mouseClicked(MouseEvent mouseevent)
{
}
public void adjustmentValueChanged(AdjustmentEvent adjustmentevent)
{
setTitle(wmsg);
if(adjustmentevent.getAdjustable() == sr)
iConf[5] = sr.getValue();
if(adjustmentevent.getAdjustable() == sr1)
iConf[17] = sr1.getValue();
lb1.setText("base(" + iConf[5] + ")");
lb2.setText("depth(" + iConf[17] + ")");
if(nDraw == 1)
{
ReadMdlImg1();
nDraw = 0;
}
makestgrm();
repaint();
setTitle(stt);
requestFocus();
}
void showeyemethod()
{
if(iConf[4] == 0)
{
bt1.setForeground(Color.blue);
bt2.setForeground(Color.black);
} else
{
bt2.setForeground(Color.blue);
bt1.setForeground(Color.black);
}
bt1.setLabel("parallel");
bt2.setLabel("cross");
}
public void actionPerformed(ActionEvent actionevent)
{
requestFocus();
if(actionevent.getSource() == bt7)
{
wclose();
return;
}
if(actionevent.getSource() == bt1)
{
iConf[4] = 0;
showeyemethod();
}
if(actionevent.getSource() == bt2)
{
iConf[4] = 1;
showeyemethod();
}
if(actionevent.getSource() == bt6)
{
if(nModel > 0)
{
nGenga = (nGenga + 1) % 2;
repaint();
return;
}
if(nDraw == 0)
{
nDraw = 1;
repaint();
return;
}
}
if(actionevent.getSource() == bt3)
if(nQuiz == 1)
{
DispQuiz();
return;
} else
{
nErace = 0;
return;
}
if(actionevent.getSource() == bt4)
{
nErace = 1;
return;
}
if(actionevent.getSource() == bt5)
if(nDraw == 0)
{
return;
} else
{
nErace = 0;
lines.removeAllElements();
colors.removeAllElements();
offgraphics.setColor(getBackground());
offgraphics.fillRect(0, 0, apx, apy);
repaint();
return;
}
setTitle(wmsg);
if(nDraw == 1)
{
ReadMdlImg1();
nDraw = 0;
}
makestgrm();
repaint();
setTitle(stt);
}
public void keyPressed(KeyEvent keyevent)
{
if(keyevent.getKeyCode() == 27)
{
wclose();
return;
}
if(keyevent.getKeyCode() == 88)
{
setTitle(wmsg);
iConf[4] = (iConf[4] + 1) % 2;
showeyemethod();
if(nDraw == 1)
{
ReadMdlImg1();
nDraw = 0;
}
makestgrm();
repaint();
setTitle(stt);
}
if(nModel > 0 && nModel < mdlmax)
{
if(keyevent.getKeyCode() == 8)
{
setTitle(wmsg);
nModel--;
if(nModel < 1)
nModel = mdlmax - 1;
c1.select(nModel);
ReadMdlImg(nModel);
makestgrm();
repaint();
setTitle(stt);
}
if(keyevent.getKeyCode() == 32)
{
setTitle(wmsg);
nModel++;
if(nModel > mdlmax - 1)
nModel = 1;
c1.select(nModel);
ReadMdlImg(nModel);
makestgrm();
repaint();
setTitle(stt);
return;
}
} else
if(keyevent.getKeyCode() == 32 && nModel == mdlmax)
DispQuiz();
}
public void keyReleased(KeyEvent keyevent)
{
}
public void keyTyped(KeyEvent keyevent)
{
}
public void itemStateChanged(ItemEvent itemevent)
{
int k = 0;
setTitle(wmsg);
if(itemevent.getItemSelectable() == c)
{
for(int i = 0; i < 33; i++)
if(strfil[i].equals((String)itemevent.getItem()))
k = i;
SetiConf(k);
SetPalData(iConf[2]);
if(nDraw == 1)
{
ReadMdlImg1();
nDraw = 0;
}
makestgrm();
requestFocus();
repaint();
}
if(itemevent.getItemSelectable() == c1)
{
nDraw = 0;
int l = -1;
nQuiz = 0;
for(int j = 0; j < mdlmax + 1; j++)
if(mdlname[j].equals((String)itemevent.getItem()))
l = j;
if(l < 0)
{
setTitle(stt);
return;
}
nModel = l;
if(nModel == 0)
{
nErace = 0;
nDraw = 1;
c1.setBounds(30, nFT, 80, 20);
bt3.setBounds(115, nFT, 20, 20);
bt4.setBounds(135, nFT, 20, 20);
bt5.setBounds(155, nFT, 20, 20);
c.setBounds(180, nFT, 100, 20);
bt3.setLabel("P");
repaint();
setTitle(stt);
return;
}
if(nModel == mdlmax)
{
nQuiz = 1;
c1.setBounds(30, nFT, 80, 20);
bt3.setBounds(115, nFT, 60, 20);
bt4.setBounds(155, nFT, 0, 0);
bt5.setBounds(175, nFT, 0, 0);
c.setBounds(180, nFT, 100, 20);
bt3.setLabel("Next");
DispQuiz();
setTitle(stt);
return;
}
c1.setBounds(30, nFT, 120, 20);
bt3.setBounds(145, nFT, 0, 0);
bt4.setBounds(165, nFT, 0, 0);
bt5.setBounds(185, nFT, 0, 0);
c.setBounds(160, nFT, 120, 20);
ReadMdlImg(nModel);
makestgrm();
requestFocus();
repaint();
}
setTitle(stt);
}
void DispQuiz()
{
setTitle(wmsg);
double d = 1.0D + Math.random() * (double)(mdlmax - 1);
ReadMdlImg((int)d);
d = Math.random() * 33D;
c.select((int)d);
SetiConf((int)d);
SetPalData(iConf[2]);
makestgrm();
requestFocus();
if(kore != null)
kore.play();
repaint();
setTitle(stt);
}
/** Read depth/3d model file*/
void ReadMdlImg(int i)
{
if(img != null)
{
img.flush();
img = null;
}
img = applet.getI(mdlfile[i]);
cxDib = img.getWidth(this);
cyDib = img.getHeight(this);
pixs = new int[cxDib * cyDib];
try
{
PixelGrabber pixelgrabber = new PixelGrabber(img, 0, 0, cxDib, cyDib, pixs, 0, cxDib);
pixelgrabber.grabPixels();
return;
}
catch(InterruptedException _ex)
{
return;
}
}
void ReadMdlImg1()
{
cxDib = offscreen.getWidth(this);
cyDib = offscreen.getHeight(this);
pixs = new int[cxDib * cyDib];
try
{
PixelGrabber pixelgrabber = new PixelGrabber(offscreen, 0, 0, cxDib, cyDib, pixs, 0, cxDib);
pixelgrabber.grabPixels();
}
catch(InterruptedException _ex) { }
for(int j = 0; j < cyDib; j++)
{
for(int i = 0; i < cxDib; i++)
if((pixs[j * cxDib + i] & 0xffffff) == 0)
pixs[j * cxDib + i] = 0xff444444;
else
pixs[j * cxDib + i] = 0xff000000;
}
}
void SetPalData(int i)
{
int ai[] = new int[256];
int k1 = col[i][0];
int l1 = col[i][1];
int i2 = (l1 + 1) * (k1 - 1) + 1;
palsu = i2;
int j = 0;
for(int l = 0; l < k1 - 1; l++)
{
int j2 = col[i][2 + l * 3];
int i3 = col[i][3 + l * 3];
int l3 = col[i][4 + l * 3];
ai[j] = 0xff000000 | j2 << 16 | i3 << 8 | l3;
j++;
for(int j1 = 1; j1 < l1 + 1; j1++)
{
int k2 = col[i][2 + l * 3] + ((col[i][2 + (l + 1) * 3] - col[i][2 + l * 3]) * j1) / (l1 + 1);
int j3 = col[i][3 + l * 3] + ((col[i][3 + (l + 1) * 3] - col[i][3 + l * 3]) * j1) / (l1 + 1);
int i4 = col[i][4 + l * 3] + ((col[i][4 + (l + 1) * 3] - col[i][4 + l * 3]) * j1) / (l1 + 1);
ai[j] = 0xff000000 | k2 << 16 | j3 << 8 | i4;
j++;
}
}
int l2 = col[i][2 + (k1 - 1) * 3];
int k3 = col[i][3 + (k1 - 1) * 3];
int j4 = col[i][4 + (k1 - 1) * 3];
ai[j] = 0xff000000 | l2 << 16 | k3 << 8 | j4;
for(int k = 0; k < palsu; k++)
{
int i1 = k + iConf[6];
if(i1 > palsu - 1)
i1 -= palsu;
pal[k] = ai[i1];
}
}
void SetiConf(int i)
{
for(int j = 6; j < 17; j++)
iConf[j] = filt[i][j - 6];
iConf[2] = filt[i][11] - 1;
}
public void update(Graphics g)
{
g.clearRect(0, 0, apx, nBtm);
paint(g);
}
public void paint(Graphics g)
{
if(nDraw == 1)
{
g.drawImage(offscreen, 0, nBtm, this);
return;
}
g.drawImage(new_img, 0, nBtm, this);
if(nGenga == 1)
g.drawImage(img, 0, nBtm, this);
g.setColor(Color.white);
g.fillOval((apx - iConf[5]) / 2, nBtm + 5, 20, 10);
g.fillOval((apx + iConf[5]) / 2, nBtm + 5, 20, 10);
g.setColor(Color.black);
g.fillOval((apx - iConf[5]) / 2 + 5, nBtm + 5, 10, 10);
g.fillOval((apx + iConf[5]) / 2 + 5, nBtm + 5, 10, 10);
}
int random(int i)
{
//return (int)(Math.random()*10);
///*
byte byte0 = 51;
jrnd = (jrnd + 1) % 89;
int j = (jrnd + byte0) % 89;
mrnd[jrnd] ^= mrnd[j];
return (mrnd[jrnd] * i) / 32768;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -