;
10多年的合浦網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整合浦建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“合浦網(wǎng)站設(shè)計(jì)”,“合浦網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
要制造那種效果只需要大約 30 行 Java 代碼:
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
class RollingBall extends JPanel {
Ellipse2D.Float ball = new Ellipse2D.Float( -100, 100, 50, 50 );
public void paintComponent( Graphics g ) {
super.paintComponent( g );
Graphics2D g2 = ( Graphics2D ) g;
// Draw the ball
g2.fill( ball );
// Draw the rotating ellipse by skewing the Device Space
double angdeg =?????// One rotation per ball's travelling over its perimeter
ball.x++ % ( Math.PI * ball.width ) / ( Math.PI * ball.width ) * 360;
g2.rotate( Math.toRadians( angdeg ), ball.getCenterX( ), ball.getCenterY( ) );
g2.scale( .5, 1 );
g2.translate( ball.getCenterX( ), 0 );
g2.setColor( Color.gray );
g2.fill( ball );
}
public void roll( ) throws Exception {
while( true ) {
repaint( );
Thread.sleep( 8 );
}
}
public static void main( String[ ] args ) throws Exception {
JFrame f = new JFrame( );
RollingBall rb = new RollingBall( );
f.setSize( 999, 185 );
f.getContentPane( ).add( rb );
f.setVisible( true );
rb.roll( );
}
}
package edu.njit.cs.ding;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JButton;
import javax.swing.JFrame;
public class App extends JFrame{
private JButton btn ;
public static Worker w ;
public static int x,y ;
public App(){
btn = new JButton("ok") ;
this.setSize(500,500) ;
this.add(btn) ;
this.setVisible(true);
w = new Worker() ;
}
public static void main(String[] args) throws Exception {
Timer timer = new Timer(false);
App theApp = new App() ;
timer.schedule(App.w, new Date(System.currentTimeMillis() + 1000));
}
class Worker extends TimerTask {
public void run() {
while(true){
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
btn.setLocation(x++,y) ;
}
}
}
}
簡(jiǎn)單來(lái)說(shuō),這個(gè)非常困難,:(。
你可以按下面的步驟試試:
1、記錄下菜單高度(getPreferedSize)
2、把菜單的高度設(shè)置為0。(考慮向下滑)
3、使用定時(shí)器逐漸增高菜單。
System.out.println("init List size:" + strList.size());
IteratorString it = strList.iterator();
while(it.hasNext()){
String str = it.next();
if(str.equals("cccc")){
it.remove();
}
}
for(String str : strList){
System.out.println(str);
}
System.out.println("removed List size:" + strList.size());
}
首先這種效果我沒有做過(guò),因?yàn)楝F(xiàn)在實(shí)在沒有人用swing寫GUI客戶端了。
讓我現(xiàn)在給你寫個(gè)完整的代碼也么那么多時(shí)間》
首先分隔成三個(gè)窗體,用三個(gè)jpanel放到j(luò)frame中,然后仔細(xì)的設(shè)置窗體和jpanel的寬高和位置就能了,
至于拖動(dòng)變成豎的,你只需要在底下console的窗口的jpanel加上MouseListener,具體的可靠下面的代碼:
注意的是,當(dāng)?shù)紫碌腸onsole的位置變更,變成豎的了,其他的jpanel的位置你也需要進(jìn)行更新調(diào)整
myFrame.addMouseListener(new?MouseAdapter()?{
//?按下(mousePressed
//?不是點(diǎn)擊,而是鼠標(biāo)被按下沒有抬起)
public?void?mousePressed(MouseEvent?e)?{?
//?當(dāng)鼠標(biāo)按下的時(shí)候獲得窗口當(dāng)前的位置
origin.x?=?e.getX();?
origin.y?=?e.getY();
}
});
myFrame.addMouseMotionListener(new?MouseMotionAdapter()?{
//?拖動(dòng)(mouseDragged
//?指的不是鼠標(biāo)在窗口中移動(dòng),而是用鼠標(biāo)拖動(dòng))
public?void?mouseDragged(MouseEvent?e)?{????????????????????????????????????????????????????????
//?當(dāng)鼠標(biāo)拖動(dòng)時(shí)獲取窗口當(dāng)前位置
Point?p?=?myFrame.getLocation();?
//?設(shè)置窗口的位置
//?窗口當(dāng)前的位置?+?鼠標(biāo)當(dāng)前在窗口的位置?-?鼠標(biāo)按下的時(shí)候在窗口的位置
myFrame.setLocation(p.x?+?e.getX()?-?origin.x,?p.y?+?e.getY()
-?origin.y);
}
});