gpt4 book ai didi

java - 我如何在 JScrollPane 上查看所有内容

转载 作者:行者123 更新时间:2023-12-01 13:15:51 25 4
gpt4 key购买 nike

我确实更新、绘制、重新绘制图形,但我看不到所有这些...我检查了视口(viewport),但它限制了我的 View 面板...!
我不知道该怎么办...T-T
我确实更新了当卷轴移动时

    top.add(tf1);
top.add(new Label("×"));
top.add(tf2);
Button set = new Button("SET!!");
set.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
super.mouseClicked(e);
try{
view.remove(board);
}catch(NullPointerException e111){
}
int x=Integer.parseInt(tf1.getText()), y=Integer.parseInt(tf2.getText());
board = new Board(x,y);
view.add(board);
view.setPreferredSize(new Dimension(x*20, y*20));
view.setBounds(0, 0, x*20, y*20);
}
});
top.add(set);
rp.add(top);
editView.setBounds(0, 100, 500, 600);
editView.getViewport().addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
try{
// board.update(board.getGraphics());
// board.repaint();
// board.paint(board.getGraphics());
// board.paintComponents(getGraphics());
/*view.remove(board);
view.add(board);*/
}catch(NullPointerException e2){
}
}
});
rp.add(editView);

'view'只是一个Panel(null);和~内部类 Board = board

class Board extends JPanel{
public Image board;
public int y,x;
Board(int x, int y){
this.x = x;
this.y = y;
setBounds(0, 0, x*20, y*20);
setPreferredSize(new Dimension(x*20, y*20));
addMouseListener(this);
addMouseMotionListener(this);
setOpaque(true);
}
@Override
public void paint(Graphics g) {
board = createImage(x*20, y*20);
Graphics g2 = board.getGraphics();
g2.setColor(Color.white);
g2.fillRect(0, 0, x*20, y*20);
g2.setColor(Color.black);
for(int i=0;i<y;i++){
if(i%10==0){
g2.setColor(Color.red);
}
g2.drawLine(0, i*20, x*20, i*20);
if(i%10==0){
g2.setColor(Color.black);
}
}
for(int i=0;i<x;i++){
if(i%10==0){
g2.setColor(Color.red);
}
g2.drawLine(i*20, 0, i*20, y*20);
if(i%10==0){
g2.setColor(Color.black);
}
}
g.drawImage(board, 0, 0, x*20, y*20, null);
}

我确实喜欢这个东西...我尝试了很多方法..但同样我无法修复它...=_=...
请帮助我!!~~

结构:JScrollPane - 面板 - 面板
面板定义尺寸方法:setPreferredSize(new Dimension(x,y))

<小时/>

我在绘制时仅使用图形。

最佳答案

切勿调用 paintpaintComponent 方法。

  • 只需在您展示的方法中调用 repaint 即可。
  • 确保您在开始时调用了 board.setOpaque(true);

祝你好运。

关于java - 我如何在 JScrollPane 上查看所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22481741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com