導航:首頁 > 編程語言 > java窗體編程

java窗體編程

發布時間:2024-12-21 01:00:59

Ⅰ 用java編程: 在JFrame窗體中繪制五角星,並用紅色填充

importjava.awt.Color;

importjava.awt.Graphics;

importjava.awt.Point;

importjavax.swing.JLabel;

{

=-3847465547528967067L;

privatePointpointA;

privatePointpointB;

privatePointpointC;

privatePointpointD;

privatePointpointE;

privatePointpointLeftInner;

privatePointpointRightInner;

privateintpix;

privatestaticColorbgColor=Color.YELLOW;

privatestaticColorfieldColor=Color.RED;

publicstaticvoidsetBgColor(ColorbgColor){

Pentagram.bgColor=bgColor;

}

publicstaticvoidsetFieldColor(ColorfieldColor){

Pentagram.fieldColor=fieldColor;

}

/**只有width有效,把label弄成正方的*/

publicvoidsetBounds(intx,inty,intwidth,intheight){

super.setBounds(x,y,width,width);

}

/**只有width有效,把label弄成正方的*/

publicvoidsetSize(intwidth,intheight){

super.setSize(width,width);

}

publicvoidsetSize(intsize){

setSize(size,size);

}

publicPentagram(intsize){

pix=size/12;

setSize(pix*12);

initPoints();

}

privatevoidinitPoints(){

pointA=newPoint(6*pix,0);//上邊中間點

pointB=newPoint(0,4*pix);//左邊上面點

pointC=newPoint(12*pix,4*pix);//右邊上面點

pointD=newPoint(3*pix,12*pix);//左邊下面點

pointE=newPoint(9*pix,12*pix);//右邊下面點

pointLeftInner=newPoint(5*pix,4*pix);//左邊裡面的點

pointRightInner=newPoint(7*pix,4*pix);//右邊裡面的點

}

privatevoiddraw(Graphicsg){

fillPolygon(g,pointA,pointLeftInner,pointRightInner);

fillPolygon(g,pointB,pointE,pointRightInner);

fillPolygon(g,pointC,pointD,pointLeftInner);

}

/**

*已知點,填充多邊形。

*@paramg畫筆

*@parampoints已知的'點'們

*/

privatevoidfillPolygon(Graphicsg,Point...points){

int[]xPoints=newint[points.length];

int[]yPoints=newint[points.length];

for(inti=0;i<points.length;i++){

xPoints[i]=points[i].x;

yPoints[i]=points[i].y;

}

g.fillPolygon(xPoints,yPoints,points.length);

}

publicvoidpaint(Graphicsg){

g.setColor(bgColor);

g.fillRect(0,0,12*pix,12*pix);

g.setColor(fieldColor);

draw(g);

}

}

/**以下是測試代碼*/

importjavax.swing.JFrame;

importjavax.swing.JLabel;

publicclassTest{

publicstaticvoidmain(String[]args){

JFrameframe=newJFrame();

frame.setBounds(200,200,400,400);

JLabellabel=newPentagram(frame.getSize().height/2);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.add(label);

frame.setVisible(true);

}

}

Ⅱ java窗口編程中有什麼 能精確定位的方法

先設置不使用布局管理器:setLayout(null)。 然後所有控制項用setBounds(left, top, width, height)設置絕對定位(left、top)和尺寸(width、height)。 public static void main(String[] args) { JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container c = f.getContentPane(); c.setLayout(null); JButton b = new JButton("button"); b.setBounds(100, 50, 80, 40); c.add(b); f.setSize(400, 300); f.setVisible(true); }

Ⅲ JAVA 編寫一個帶有窗口的應用程序

這樣:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.awt.Graphics;

public class MainClass extends JFrame {

public JComboBox box;

int flag = 0;

jpNewPanel jpNewPanel;

public static void main(String[] args) {

MainClass frame = new MainClass();

frame.setBounds(650,300,550,550);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setTitle("信號燈");

frame.setVisible(true);

}

public MainClass() {

box = new JComboBox();

box.addItem("請選擇");

box.addItem("紅燈");

box.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

flag = box.getSelectedIndex();

jpNewPanel.repaint();

}

});

box.addItem("黃燈");

box.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

flag = box.getSelectedIndex();

jpNewPanel.repaint();

}

});

box.addItem("綠燈");

box.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

flag = box.getSelectedIndex();

jpNewPanel.repaint();

}

});

add(box, BorderLayout.NORTH);

jpNewPanel = new jpNewPanel();

add(jpNewPanel, BorderLayout.CENTER);

}

class jpNewPanel extends JPanel {

protected void paintComponent(Graphics g) {

super.paintComponent(g);

g.drawOval(150, 0, 120, 120);

if (flag == 1) {

g.setColor(Color.RED);

g.fillOval(150, 0, 120, 120);

} else if (flag == 2) {

g.setColor(Color.YELLOW);

g.fillOval(150, 0, 120, 120);

} else if (flag == 3) {

g.setColor(Color.GREEN);

g.fillOval(150, 0, 120, 120);

}

}

}

}

(3)java窗體編程擴展閱讀:

注意事項

每個Road對象都有一個name成員變數來代表方向,有一個vehicles成員變數來代表方向上的車輛集合。

在Road對象的構造方法中啟動一個線程每隔一個隨機的時間向vehicles集合中增加一輛車(用一個「路線名_id」形式的字元串進行表示)。

在Road對象的構造方法中啟動一個定時器,每隔一秒檢查該方向上的燈是否為綠,是則列印車輛集合和將集合中的第一輛車移除掉。

閱讀全文

與java窗體編程相關的資料

熱點內容
android銀行卡識別 瀏覽:751
怎麼在app投放廣告 瀏覽:9
手機文件管理怎麼看app名稱 瀏覽:190
程序員學數學哪本書最全 瀏覽:784
macd實戰選股公式源碼 瀏覽:642
加密晶元的計算方法 瀏覽:187
手機存儲為什麼找不到微信文件夾 瀏覽:695
msf埠遷移命令 瀏覽:880
工商app積分怎麼查詢 瀏覽:143
鐵路app怎麼買火車票 瀏覽:309
移魅族除的app怎麼添加 瀏覽:240
兔籠子大號加密 瀏覽:171
單片機程序燒錄操作成功 瀏覽:878
指標高拋低吸點位源碼 瀏覽:205
25匹壓縮機銅管 瀏覽:570
單片機單燈左移05 瀏覽:150
買伺服器練手什麼配置 瀏覽:783
伺服器被毀該怎麼辦 瀏覽:939
python私有庫 瀏覽:514
Python有中文嗎 瀏覽:736