스윙에서 절대 레이아웃으로 스크롤 막대를 사용할 수 없습니다.스윙에서 절대 레이아웃으로 스크롤 막대 사용
이 레이아웃을 사용하고 싶지는 않지만 버튼을 클릭하면 내 패널에 동적 객체를 표시하고이 레이아웃을 사용하여 수행 할 수있는 setBounds
을 사용하여 정렬해야합니다 (추측).
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class clothes2 extends javax.swing.JFrame {
JTextField n=null;
JButton m=null;
public clothes2(){
initComponents();
}
public void initComponents() {
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
final JPanel jp = new JPanel();
contentPane.setPreferredSize(new Dimension(320,200));
jp.setLayout(null);
m=new JButton("add");
m.setBounds(0,0,50,50);
jp.add(m);
m.addMouseListener(new MouseAdapter() {
int x=0;
int y=0;
public void mouseClicked(MouseEvent me){
x+=100;
y+=100;
jp.add(n=new JTextField("Name"));
n.setBounds(x, y, 50, 50);
jp.add(n=new JTextField("code"));
x+=100;
n.setBounds(x,y, 50, 50);
jp.revalidate();
jp.repaint();
x=0;
}
});
int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS;
int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS;
JScrollPane jsp = new JScrollPane(jp, v, h);
contentPane.add(jsp, BorderLayout.CENTER);
}
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
public void run() {
JFrame f= new clothes2();
f.setVisible(true);
f.setSize(640,320);
}
});
}
}
_i 추가 레이아웃 - 간단하게 수동 뭐 :-)를 따라, 좋은 생각 (정렬, 크기 및 위치)의 작업을 _is_ LayoutManager를 사용해, 그 일을 올바르게하는 것을 찾아냅니다. – kleopatra
이 코드는 GUI의 왼쪽 상단에서 시작하는 열에 일련의 큰 사각형 텍스트 필드 (모두 동일한 너비와 높이)를 만들려고합니다. 그 맞습니까? –