- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Thiết lập cơ bản là thế này: Tôi có một JSplitPane dọc và tôi muốn nó có thành phần dưới cùng có kích thước cố định và thành phần trên cùng đã được thay đổi kích thước, tôi thực hiện bằng cách gọi setResizeWeight(1.0)
để hoàn thành. Trong ứng dụng này có một nút để khôi phục cấu hình cửa sổ "mặc định". Chiều cao mặc định của cửa sổ là chiều cao của màn hình và vị trí dải phân cách mặc định là 100 pixel tính từ đáy của Ngăn được chia.
Để đặt vị trí dải phân cách thành 100px, tôi đặt chiều cao của JSplitPane thành - 100. Vấn đề là, ngay trước đó tôi đã thay đổi kích thước JFrame và vì mã nằm trong nút gọi lại nên JSplitPane bị vô hiệu hóa nhưng chưa được thay đổi kích thước. Vì vậy, vị trí dấu phân cách được đặt không chính xác.
Đây là SSCCE. Nhấp vào nút hai lần để xem vấn đề. Nhấp chuột đầu tiên sẽ thay đổi kích thước cửa sổ, nhưng vị trí dải phân cách vẫn không thay đổi (so với đáy cửa sổ). Lần nhấp thứ hai sẽ di chuyển dải phân cách một cách chính xác vì kích thước cửa sổ không thay đổi.
nhập java.awt.BorderLayout;
nhập java.awt.Dimension;
nhập java.awt.GraphicsConfiguration;
nhập java.awt.Insets;
nhập java.awt.Rectangle;
nhập java.awt.Toolkit;
nhập java.awt.event.ActionEvent;
nhập javax.swing.AbstractAction;
nhập javax.swing.JButton;
nhập javax.swing.JFrame;
nhập javax.swing.JLabel;
nhập javax.swing.JSplitPane;
lớp công khai SSCCE {
/**
* @param lập luận không được sử dụng
*/
public static void main(String[] args) {
SSCCE mới();
}
JFrame cuối cùng riêng tư f = JFrame mới("JSplitPane SSCE");
riêng tư cuối cùng JSplitPane sp = new JSplitPane(JSplitPane.VERTICAL_SPLIT,true);
SSCCE công khai() {
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
sp.add(JLabel mới("top"));
sp.add(new JLabel("bottom"));
sp.setResizeWeight(1.0);
f.getContentPane().add(sp);
f.getContentPane().add(new JButton(newAbstractAction("Resize to Default") {
@Ghi đè
public void actionPerformed(ActionEvent e) {
khôi phụcDefaults();
}
}),BorderLayout.PAGE_END);
f.setSize(400,300);
f.setVisible(true);
}
void khôi phụcDefaults() {
f.setSize(f.getWidth(), getDesktopRect(f.getGraphicsConfiguration()).height);
sp.setDividerLocation(sp.getSize().height - 100); // Không hoạt động khi nhấn nút đầu tiên
}
Hình chữ nhật getDesktopRect(GraphicsConfiguration gc) {
Bộ công cụ = Toolkit.getDefaultToolkit();
Kích thước thứ nguyên = toolkit.getScreenSize();
Phần trong phần trong = toolkit.getScreenInsets(gc);
trả về Hình chữ nhật mới (insets.left, insets.top, size.width - (insets.left + insets.right), size.height - (insets.top + insets.bottom));
}
}
Tôi đã nghĩ ra một số cách để giải quyết vấn đề này, nhưng tất cả đều có vẻ hơi rắc rối. Ý tưởng tốt nhất của tôi cho đến nay là gọi giữa việc đặt kích thước khung và đặt vị trí dấu phân cách f.xác thực()
, nhưng tôi lo lắng rằng việc buộc xác thực có thể sớm gây ra tác dụng phụ.
Một lựa chọn khác mà tôi nghĩ đến là sử dụng EventQueue.invokeLater()
Thực hiện cuộc gọi đặt vị trí dấu phân cách ở cuối hàng đợi sự kiện. Nhưng điều này có vẻ rủi ro đối với tôi - tôi cho rằng JSplitPane sẽ được xác thực vào thời điểm này, điều mà tôi e rằng có thể là một giả định sai.
Có cách nào tốt hơn?
câu trả lời hay nhất
Tôi phải mất một lúc (có lẽ vì ở đây là sáng sớm :-) để hiểu câu hỏi này, vì vậy chỉ để đảm bảo rằng tôi đã hiểu:
Nếu vậy, giải pháp là tách việc thay đổi kích thước khung khỏi việc thay đổi kích thước thành phần phía dưới. Tùy chọn thứ hai của bạn là chính xác: thay đổi kích thước khung và bọc phần dưới cùng của comp thay đổi kích thước thành InvokeLater (EventQueue hoặc SwingUtilities, không thành vấn đề).
void khôi phụcDefaults() {
f.setSize(f.getWidth(), getDesktopRect(f.getGraphicsConfiguration()).height);
SwingUtilities.invokeLater(new Runnable() {
công khai void run() {
sp.setDividerLocation(sp.getSize().height - 100);
}
});
}
Điều này được đảm bảo hoạt động như mong đợi, vìgọiLater đặt yêu cầu sau tất cả các sự kiện được xếp hàng đợi:
/**
* Làm cho doRun.run() được thực thi không đồng bộ trên
* Chuỗi gửi sự kiện AWT rốt cuộc sẽ xảy ra.
* các sự kiện AWT đang chờ xử lý đã được xử lý.
* Nếu InvokeLater được gọi từ chuỗi gửi sự kiện --
* ví dụ: từ ActionListener của JButton -- doRun.run() sẽ
* vẫn được hoãn lại cho đến khi tất cả các sự kiện đang chờ xử lý đã được xử lý.
Về swing - cần chiều cao của thành phần Swing không hợp lệ, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/6946880/
我有下面的图表,它填充了显示器的宽度和高度。高度始终只比屏幕大一点,因此会出现滚动条以显示底部 20 像素左右。 有没有办法让 Kendo UI 显示 100%,而不是 105% 的高度? 在线示例:
这个问题在这里已经有了答案: Why doesn't height: 100% work to expand divs to the screen height? (12 个答案) 关闭 9 年前
此页面 ( http://purcraft.com/madeinla/) 有问题,我正在尝试使用 iframe 元素显示此页面的内容:( http://purcraft.com/madeinla/ho
我在一个父 div 中有 2 个子 div。 Child1 是标题,Child2 是正文。我希望将 Child 2 的高度设置为 Parent - Child1 的高度。 Child2 有内容,所以它
我正在尝试用图像填充窗口。我正在使用 CSS 来尝试解决这个问题,但我想知道是否有一种方法可以最大化图像的宽度/高度,直到所有空白区域都被填满,但又不会破坏质量。 .rel-img-co
这个问题在这里已经有了答案: How to make a div 100% height of the browser window (41 个回答) 关闭 8 年前。
这可能是一个新手问题,但是是否可以将 Sprite 图标添加到带有文本的标签中? 例如: labeltext .icon { width: 30px height: 30px;
我有 3 个 div,分别是 header、content 和 footer。页眉和页脚具有固定的高度,并且它们被设计为 float 在顶部和底部。我想要使用 jquery 自动计算中间的 con
我有一个外部 div,其指定的宽度/高度(以毫米为单位)。 (mm只是赋值,不用于渲染)。 里面有另一个 div,其实际宽度/高度(以 px 为单位)。 两个 div 可以具有不同的比例。 我想要做的
我正在为一个非常简单的画廊 webapp 进行布局排序,但是当我使用 HTML5 文档类型声明时,我的一些 div(100%)的高度会立即缩小,我不能似乎使用 CSS 将它们丰满起来。 我的 HTML
我正在为一个非常简单的画廊 webapp 进行布局排序,但是当我使用 HTML5 文档类型声明时,我的一些 div(100%)的高度会立即缩小,我不能似乎使用 CSS 将它们丰满起来。 我的 HTML
我想更改 UISearchBar。文本字段的高度和宽度。我的问题是如何更改 iphone 中 UISearchBar 中的 UiSearchbar 高度、宽度、颜色 和 Uitextfield 高度?
Tôi muốn hai div có chiều rộng và chiều cao 100%. Tôi biết div con sẽ không hoạt động vì div cha không có chiều cao cụ thể, nhưng có cách nào khác không? HTML: CSS: nội dung
我有几个带有“priceText”类的 div,我试图实现如果 div.priceText 高度小于 100px,则隐藏 this div 中的图像。 我无法让它工作。我已成功隐藏所有 .priceT
我正在尝试从 Image 列中列出的图像中获取实际图像尺寸,并将其显示在 Image Size 列中。 我遇到的问题是,我只能获取第一张图片的大小,该图片会添加到 Image Size 列的每个单元格
我正在使用一个插件,它要求我在加载图像后获取图像的宽度和高度,而不管图像的尺寸是如何确定的。
我有一个示例 pdf(已附),它包括一个文本对象和一个高度几乎相同的矩形对象。然后我使用 itextrup 检查了 pdf 的内容,如下所示: 1 1 1 RG 1 1 1 rg 0.12 0 0 0
我是 WPF 新手。我试图解决的一个问题是如何在运行时获得正确的高度。 在我的应用程序中,我将用户控件动态添加到代码隐藏中的 Stackpanel。 Usercontrol 包含一些 Texblock
Trong điều khiển WPF tùy chỉnh, tôi muốn đặt chiều rộng của điều khiển làm hàm của chiều cao. Ví dụ: Chiều rộng = Chiều cao/3 * x; Cách tốt nhất để đạt được điều này là gì để điều khiển thay đổi kích thước (và khởi tạo) một cách chính xác và trơn tru? Câu trả lời hay nhất bạn có thể
好吧,我本以为这是一个简单的问题,但显然它让我感到困惑。 当我尝试设置 RibbonComboBox 的高度时,它不会移动它的实际大小,而是移动它周围的框。 这是我的 XAML:
Tôi là một lập trình viên xuất sắc, rất giỏi!