我嘗試做一個非常簡單的事情..在類中Main我畫了2行座標系..並且在類userPaint從x1 y1 x2 y2(已經初始化)中畫出1行。問題是3行(座標系和x1y1x2y2行)不在同一個窗口/框架中。編譯器創建2個窗口...我該如何解決這個問題?一幀中的Java畫線
主要類:
import static javax.swing.JFrame.EXIT_ON_CLOSE;
import java.awt.*;
import javax.swing.*;
public class Main extends JFrame {
@Override
public void paint(Graphics g) {
super.paint(g);
g.drawLine(20, 80, 20, 200);
g.drawLine(20, 200, 140, 200);
}
public Main(String title){
super(title);
setSize(800, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
Main main = new Main("Graph");
userPaint up = new userPaint();
}
}
userPaint類:
import java.awt.*;
import javax.swing.*;
public class userPaint extends JFrame {
int x1, y1, x2, y2;
@Override
public void paint(Graphics g) {
super.paint(g);
g.drawLine(x1, y1, x2, y2);
}
public userPaint(){
//Gives 4 numbers for points to drawline. Assume that the x1,y1,x2,y2 are given by Scanner.. but im gonna initialize
x1 = 200;
y1 = 200;
x2 = 300;
y2 = 300;
setSize(800, 600);
setVisible(true);
}
}
你想在一個窗口中繪製 - 所以要用一個窗口,並在失敗中汲取2行。你不需要2班 - 一個足夠好,它應該畫所有線。換句話說 - 合併這兩個類到一個,你將有一個窗口。 – Alex
是的,但我想要1行被固定..(主類)和另一行由用戶(x1,y1,x2,y2)給出,所以如果我在1類中做: public void paint (圖形g)super.paint(g); g.drawLine(20,80,20,200); g.drawLine(20,200,140,200); g1drawLine(x1,y1,x2,y2); //它從哪裏獲取變量? } – Sotnam96
讓'JFrame'包含一個管理繪畫的'JPanel' - 繪畫應該通過覆蓋'paintComponent'方法 – copeg