这是下面的代码,问题是JScrollPane保持其首选大小,并且不会使用BorderLayout.CENTER区域调整大小.我希望它填充该区域,当然..并使用它来滚动其中的表的内容.
frame = new JFrame();
frame.setBounds(100, 100, 500, 400);
JPanel panelCenter = new JPanel();
FlowLayout flowLayout = (FlowLayout) panelCenter.getLayout();
flowLayout.setAlignment(FlowLayout.LEFT);
panelCenter.setPreferredSize(new Dimension(300, 400));
panelRight = new ActorDrawer();
frame.getContentPane().add(panelRight, BorderLayout.EAST);
panelRight.setLayout(null);
panelRight.setPreferredSize(new Dimension(200, 400));
frame.getContentPane().add(panelCenter, BorderLayout.CENTER);
table = new JTable(new MyTableModel());
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JScrollPane scrollPane = new JScrollPane(table);
table.setFillsViewportHeight(true);
panelCenter.add(scrollPane);
Run Code Online (Sandbox Code Playgroud) 我试图使用java Web服务进行简单的添加.我有一个问题从JTextField我的ints 输入,以便程序可以执行添加.我的代码如下.当用户输入第一个值时,他们应该点击第一个按钮(butta)与第二个按钮相同,一旦点击第二个按钮,它应该显示结果的某个位置.单击按钮时,整数解析似乎不起作用.
public class Wscalcclient {
static int aa=0, bb=0, cc=0;
String str = new String();
JTextField fielda, fieldb;
JTextField fieldc;
Wscalcclient()
{ JButton butta, buttb;
JLabel result;
JPanel panel;
JFrame frame = new JFrame();
frame.setBackground(Color.white);
frame.setForeground(Color.black);
frame.setSize(500,250);
panel = new JPanel();
panel.setBackground(Color.cyan);
panel.setForeground(Color.black);
panel.setLayout(new GridLayout(0,2));
butta = new JButton("enter number a");
buttb = new JButton("enter number b");
result = new JLabel("result a+b=");
fielda = new JTextField();
fieldb = new JTextField();
fieldc = …Run Code Online (Sandbox Code Playgroud) 输入X后,我不需要输入任何字符.我需要在输入X字符后发出一声嘟嘟声.我知道在用户按下回车后如何执行此操作,但我需要在用户按Enter键之前执行此操作.我在Oracle网站上发现的方法是将DocumentSizeFilter添加到JTextPane.我不能让它在他们结束时通知用户(在他们按下回车之前它不起作用).这是我的样本.
public class EndCycleTextAreaRenderer extends JTextPane
implements TableCellRenderer {
private final int maxNumberOfCharacters = 200;
public EndCycleTextAreaRenderer() {
StyledDocument styledDoc = this.getStyledDocument();
AbstractDocument doc;
doc = (AbstractDocument)styledDoc;
doc.setDocumentFilter(new DocumentSizeFilter(maxNumberOfCharacters ));
}
Run Code Online (Sandbox Code Playgroud) 全部在标题中,我不明白这次的问题有点不同,我对两个不同的程序使用了相同的对象(列表),但第二次不起作用,请参阅:
private void jMenuItem23ActionPerformed(java.awt.event.ActionEvent evt) {
init_creer_client();
List items = new ArrayList();
items.add("mawren");
items.add("blabla");
items.add("Bonjour");
CL.show(cartes,"creer_client");
}
Run Code Online (Sandbox Code Playgroud)
有关错误的屏幕截图:

缺点是它的工作顺利:
import java.awt.Dimension;
import java.awt.HeadlessException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import org.jdesktop.swingx.autocomplete.AutoCompleteDecorator;
public class Test_swingx extends JFrame {
public Test_swingx(String title) throws HeadlessException {
this.setTitle(title);
JPanel pan=new JPanel();
JTextField jtf=new JTextField();
jtf.setColumns(20);
List items = new ArrayList();
items.add("hello");
items.add("marwen");
items.add("allooo");
AutoCompleteDecorator.decorate(jtf, items,false);
pan.add(jtf);
this.setContentPane(pan);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setBounds(280, 150, 500, 200);
}
public static void main(String[] args) { …Run Code Online (Sandbox Code Playgroud) 我写道,我正试图在文件中写一些数据.但是在重新启动时,它会删除内部的所有内容,然后再次写入.无法找出问题所在.
而且我还找到了一个像"deleteOnClose"这样的文件方法,但它没有被设置!因此默认情况下不应该这样做.
感谢您的帮助.
这是代码:
主要:
public static void class main {
public main(String args[]){
menu_secim secimObject=new menu_secim();
}
}
Run Code Online (Sandbox Code Playgroud)
menu_secim:
public class menu_secim extends JFrame{
private JButton ekle;
private JButton goster;
public menu_secim() {
super("Karar An?");
this.setLayout(new FlowLayout());
this.setVisible(true);
this.setSize(350, 150);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocation(500,300);
ekle=new JButton("Ekle");
this.getContentPane().add(ekle);
goster=new JButton("Göster");
this.getContentPane().add(goster);
ekle.setBounds(20,20, 100,60);
goster.setBounds(120, 20, 100, 60);
butonHareketleri buton=new butonHareketleri();
ekle.addActionListener(buton);
goster.addActionListener(buton);
}
private class butonHareketleri implements ActionListener{
public void actionPerformed(ActionEvent e){
if(e.getSource()==ekle)
try
{
new secim_ekle();
}
catch(Exception h)
{
System.out.print("hata …Run Code Online (Sandbox Code Playgroud) 如何使父框架的焦点无效?我有一个JFrame(parentFrame),我打开一个JDialog:
JDialog dialog = new JDialog(parentFrame);
Run Code Online (Sandbox Code Playgroud)
现在我需要设置对话框这样一种方式,每当尝试某人单击父框架时,它总是将焦点放在该对话框上,甚至阻止父框架被关闭.
例如,在Windows中添加环境变量(系统属性 - >高级选项卡 - >环境变量按钮单击)时,环境变量窗口会阻止其父项关闭.
这是我的场景:我对一个应用程序有3个视图,其中2个是相同的,除了1个东西 - 一个有额外的过滤.所有视图都使用相同的模型,因为它们以(有些)不同的方式显示相同的数据.两个相似的视图都是JTable,如下所示:
我可以为第二个视图创建过滤器,但由于两个视图都使用相同的模型(实现了TableModel),因此它们在数据模型中调用相同的函数getValueAt(int rowIndex, int columnIndex)- 目前只在基本级别上进行过滤.
在不影响第一个视图的情况下,另外过滤第二个视图的最简单方法是什么?我将如何实现这一目标?
提前致谢.
看来MigLayout被JScrollPane对象中包含的JTable对象搞糊涂了.由于在JScrollPane中使用JTable似乎很常见,我认为找出原因很重要.
在附加的示例程序中,创建了一个简化的表单,由12行和4列组成.所有宽度和高度均设置为百分比.表单中添加了许多组件,所有组件都按单元格位置添加.一些跨越行或列.最后一列显示单元格行索引和大小百分比.
如果程序以参数"JLabel"启动,则JSCrollPane中包含的JLabel将添加到第0列,所有对齐看起来都很好.如果程序以参数"JTable"启动,则所有列的行大小都会中断.
这是一个错误还是一个功能?
Make: javac -classpath <path to miglayout> migtest.java
Usage: java -classpath <path to miglayout> migtest <JTable|JLabel>
Run Code Online (Sandbox Code Playgroud)
注意:如果下面的代码看起来是混淆的(没有标签),我尝试了各种粘贴方法 - 我无法让预览看起来正确.让我知道我能做些什么来解决它.
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.util.*;
import java.io.*;
import java.text.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.filechooser.*;
import javax.swing.table.*;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableColumn;
import net.miginfocom.swing.MigLayout;
public class Migtest extends JFrame {
public final static int appWidth = 1200; // default
public final static int appHeight = 800; // default
String[] clientColNames = { "Name", "Address", …Run Code Online (Sandbox Code Playgroud) 我想在JTabbedPane的标题栏上添加一个按钮(类似于Firefox中的'打开新标签'('+')按钮)我试图添加到JTabbedPane容器的玻璃窗格中.但由于我的tabbedpane包含在JPanel中似乎它对我不起作用.任何建议对我都有很大的帮助.谢谢.
再次我在从mysql数据库显示数据时遇到JList问题,我使用下面给出的代码,但它没有在屏幕上显示任何内容.
JFrame f8 = new JFrame("Schedule");
f8.setVisible(true);
f8.setSize(1000, 1000);
JPanel jpa1 = new JPanel(new GridBagLayout());
String query = "SELECT * FROM Location";
DefaultListModel model = new DefaultListModel();
DefaultListModel model1 = new DefaultListModel();
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Statement stmt = null;
ResultSet rs;
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1/SPL", "root", "PWD");
stmt = (Statement) conn.createStatement();
rs = stmt.executeQuery(query);
while (rs.next()) {
String stadium = rs.getString("Stadium");
String city = rs.getString("City");
model.addElement(stadium);
model1.addElement(city);
}
JList list = new JList(model);
JList list1 = new JList(model1);
f8.add(jpa1);
jpa1.add(list); …Run Code Online (Sandbox Code Playgroud) swing ×10
java ×8
jtable ×2
arraylist ×1
file ×1
filtering ×1
firefox ×1
jbutton ×1
jdialog ×1
jframe ×1
jscrollpane ×1
jtabbedpane ×1
jtextpane ×1
list ×1
miglayout ×1
modal-dialog ×1
parseint ×1
rewrite ×1
swingx ×1
tablemodel ×1