;
10多年的合浦网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整合浦建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“合浦网站设计”,“合浦网站推广”以来,每个客户项目都认真落实执行。
要制造那种效果只需要大约 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) ;
}
}
}
}
简单来说,这个非常困难,:(。
你可以按下面的步骤试试:
1、记录下菜单高度(getPreferedSize)
2、把菜单的高度设置为0。(考虑向下滑)
3、使用定时器逐渐增高菜单。
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());
}
首先这种效果我没有做过,因为现在实在没有人用swing写GUI客户端了。
让我现在给你写个完整的代码也么那么多时间》
首先分隔成三个窗体,用三个jpanel放到jframe中,然后仔细的设置窗体和jpanel的宽高和位置就能了,
至于拖动变成竖的,你只需要在底下console的窗口的jpanel加上MouseListener,具体的可靠下面的代码:
注意的是,当底下的console的位置变更,变成竖的了,其他的jpanel的位置你也需要进行更新调整
myFrame.addMouseListener(new MouseAdapter() {
// 按下(mousePressed
// 不是点击,而是鼠标被按下没有抬起)
public void mousePressed(MouseEvent e) {
// 当鼠标按下的时候获得窗口当前的位置
origin.x = e.getX();
origin.y = e.getY();
}
});
myFrame.addMouseMotionListener(new MouseMotionAdapter() {
// 拖动(mouseDragged
// 指的不是鼠标在窗口中移动,而是用鼠标拖动)
public void mouseDragged(MouseEvent e) {
// 当鼠标拖动时获取窗口当前位置
Point p = myFrame.getLocation();
// 设置窗口的位置
// 窗口当前的位置 + 鼠标当前在窗口的位置 - 鼠标按下的时候在窗口的位置
myFrame.setLocation(p.x + e.getX() - origin.x, p.y + e.getY()
- origin.y);
}
});