如何在左侧底部出现“绘制线条,矩形和椭圆形”?我目前在左上方有它,我不知道该怎么做?请帮忙
我也试过,它没有像
这样的工作JLabel label = new JLabel(“Text Label”,JLabel.LEFT);
label.setVerticalAlignment(JLabel.BOTTOM);
import java.awt.*;
import javax.swing.*;
public class LinesRectsOvalsJPanel extends JPanel {
public void paintComponent( Graphics g ) {
super.paintComponent( g );
this.setBackground( Color.WHITE );
// x y width height
g.setColor(Color.BLACK);
g.drawLine(5,10,5,30);
g.setColor(Color.BLUE);
g.drawLine(18,70,127,24);
g.setColor(Color.RED);
g.drawLine(25,45,100,38);
g.setColor(Color.YELLOW);
g.drawOval(23,25,23,55);
g.setColor(Color.BLACK);
g.drawOval(15,14,40,78);
g.setColor(Color.CYAN);
g.drawOval(180,102,5,90);
g.setColor(Color.RED);
g.drawOval(21,20,89,11);
g.setColor(Color.BLUE);
g.drawOval(35,87,39,27);
g.setColor(Color.YELLOW);
g.fillRect(87,5,5,60);
g.setColor(Color.GREEN);
g.fillRect(105,15,15,85);
g.setColor(Color.CYAN);
g.fillRect(14,45,76,86);
g.setColor(Color.RED);
g.fillRect(70,79,65,86);
g.setColor(Color.BLUE);
g.fillRect(90,108,5,8);
}
}
import java.awt.*;
import javax.swing.*;
public class LinesRectsOvals {
public static void main( String args[] ) {
JFrame frame =
new JFrame( "Drawing lines, rectangles and ovals");
LinesRectsOvalsJPanel linesRectsOvalsJPanel =
new LinesRectsOvalsJPanel();
linesRectsOvalsJPanel.setBackground( Color.WHITE );
frame.add( linesRectsOvalsJPanel ); // add panel to frame
frame.setSize( 300, 300 ); // set frame size
frame.setVisible( true );
}
}
答案 0 :(得分:1)
用于绘制线条的x和y值相对于屏幕的左上角。要引用底角,请使用低x和大y值。我希望这会有所帮助。
答案 1 :(得分:0)
索引原则上是正确的。实际上,您需要知道要绘制的容器的高度和宽度。
试试这个
public void paintComponent(Graphics g) {
super.paintComponent(g);
this.setBackground(Color.WHITE);
int width = getWidth() - 1;
int height = getHeight() - 1;
// x y width height
g.setColor(Color.BLACK);
g.drawLine(5, height - 30 - 10, 5, 30);
g.setColor(Color.BLUE);
g.drawLine(18, height - 24 - 70, 127, 24);
g.setColor(Color.RED);
g.drawLine(25, height - 38 - 45, 100, 38);
g.setColor(Color.YELLOW);
g.drawOval(23, height - 55 - 25, 23, 55);
g.setColor(Color.BLACK);
g.drawOval(15, height - 78 - 14, 40, 78);
g.setColor(Color.CYAN);
g.drawOval(180, height - 90 - 102, 5, 90);
g.setColor(Color.RED);
g.drawOval(21, height - 11 - 20, 89, 11);
g.setColor(Color.BLUE);
g.drawOval(35, height - 27 - 87, 39, 27);
g.setColor(Color.YELLOW);
g.fillRect(87, height - 50 - 5, 5, 60);
g.setColor(Color.GREEN);
g.fillRect(105, height - 85 - 15, 15, 85);
g.setColor(Color.CYAN);
g.fillRect(14, height - 86 - 45, 76, 86);
g.setColor(Color.RED);
g.fillRect(70, height - 86 - 79, 65, 86);
g.setColor(Color.BLUE);
g.fillRect(90, height - 8 - 108, 5, 8);
}
这里的重要部分是
int width = getWidth() - 1;
int height = getHeight() - 1;
答案 2 :(得分:0)
我将首先查看您的代码以解释发生的事情:
JLabel label = new JLabel("Text Label", JLabel.LEFT);
label.setVerticalAlignment(JLabel.BOTTOM);
setVerticalAlignment
仅影响标签文本在标签内的定位方式,而不影响标签在父容器内的定位方式。请参阅该方法的javadoc
设置标签内容沿Y轴的对齐方式。
您的"绘图线......"字符串出现在顶部是因为以下代码
JFrame frame = new JFrame( "Drawing lines, rectangles and ovals");
这会创建一个新框架,您可以在其中指定框架的标题。就像所有其他程序一样,标题显示在顶部(以及最大化,关闭和最小化按钮)。
如果您想在底部显示文字,可以使用相应的布局管理器。
JFrame frame = new JFrame( "Whatever title you want" );
JPanel contentPane = new JPanel( new BorderLayout() );
LinesRectsOvalsJPanel linesRectsOvalsJPanel =
new LinesRectsOvalsJPanel();
contentPane.add( linesRectsOvalsJPanel, BorderLayout.CENTER );
Component statusBar = ...;//probably a JLabel is sufficient
contentPane.add( statusBar, BorderLayout.SOUTH );
有关布局管理器和示例的更多链接可在Swing info page上找到。