Swing组合框的烦人问题

时间:2018-10-20 13:40:49

标签: java swing jcombobox

https://youtu.be/8djixdHNoEQ-该视频显示了我面临的情况, <h1 class="title">Random User Generator</h1> <hr> <div id="content" class="container"> <div class="container--info"> <div id="imgContainer" class="container--info-imgContainer"> <div class="image"> <img id="image" src="https://am3pap002files.storage.live.com/y4pWy8i6R2SB4wYy260mAfz0bItbMHzhUBps0ip7YWPD-gdqYRVbcANXyN68L_j3mnDBLeYEAHTaD83MDocM42zlZq8PkUYG0sYL7fDzK9_nCOAmsCs9nylgyN-TjYyGEqulmG2SYITb0VQ_v9_fbsXbEYdobbp3hsGQZz2GLfowMkdWg97yga-i13mzZi_K5Xf/20180912_172044.jpg?psid=1&width=1528&height=1890" alt=""> <div id="image-title" class="image-title toCapital">Evangelos</div> </div> </div> <div class="container--info-details"> <div id="infos" class="container--info-details--inner"> <h2 id="fullname" class="container--info-details--inner-header toCapital">evangelos kolimitras</h2> <div class="container--info-details--inner-gender toCapital">Sex: <span id="sex">Male</span></div> <div class="container--info-details--inner-age">Age: <span id="age">26</span></div> <div class="container--info-details--inner-location"> <div class="container--info-details--inner-location--city toCapital">City: <span id="city">fellbach</span></div> <div class="container--info-details--inner-location--postcode ">Post Code: <span id="post">70734</span></div> <div class="container--info-details--inner-location--state toCapital">State: <span id="state">baden würrtemberg</span></div> <div class="container--info-details--inner-location--country toCapital">Nationality: <span id="country">de</span></div> </div> <div class="container--info-details--email">Email: <span id="email">evan@kol.de</span></div> </div> </div> </div> <div class="container--button"> <div class="container--button-inner"> <button class="btn" id="btn">Generate User</button> </div> </div> </div> const url = 'https://randomuser.me/api/'; const container = document.querySelector('#content'); const button = document.querySelector('#btn'); /* Constants responsible for retrieving DOM elements from the Image Section */ const imgContent = document.querySelector('#imgContainer'); const img = imgContent.querySelector('#image'); const image_title = imgContent.querySelector('#image-title'); /* Variables responsible for retrieving DOM elements from the Infos Section*/ const infos = document.querySelector('#infos'); const name = infos.querySelector('#fullname'); const sex = infos.querySelector('#sex'); const age = infos.querySelector('#age'); const city = infos.querySelector('#city'); const post = infos.querySelector('#post'); const state = infos.querySelector('#state'); const country = infos.querySelector('#country'); const email = infos.querySelector('#email'); button.addEventListener( 'click', () => { fetch(url) .then(handleErrors) .then( r => r.json() ) .then( (res) => { const data = res.results[0]; console.log(data); return data; } ) /* DOM MANIPULATION */ .then( (data) => { img.src = data.picture.large image_title.innerHTML = data.name.first full_name.innerHTML = `${ data.name.title } ${ data.name.first } ${ data.name.last }` sex.innerHTML = ` ${ data.gender }` if(data.gender === 'male') { console.log('boy') container.style.background = "#20232A" }else { console.log('girl') container.style.background = "#009688"; } age.innerHTML = ` ${ data.dob.age }` city.innerHTML = ` ${ data.location.city }` post.innerHTML = ` ${ data.location.postcode }` state.innerHTML = ` ${ data.location.state }` country.innerHTML = ` ${ data.nat }` email.innerHTML = ` ${ data.email }` } ) .catch( (error) => { console.log(error) } ) function handleErrors(response) { if(!response.ok) { throw Error(response.status); }; return response; } } ); 似乎被多次显示/留下了残像。

这是我设置组合框的方式:

JComboBox

除了定义它使用的列表,梳状盒本身和创建组合框之外,没有其他代码与此组件交互。 (除了用于设置“组合框”并将其添加到屏幕等的代码之外)

下面的示例程序。

thing1(驱动程序类,设置JFrame):

private String[] list = { "Inches/Centimeters", "Miles/Kilometres", "Pounds/Kilograms", "Gallons/Litres", "Feet/Metres", "Celcius/Kelvin", "Acres/Hectare" }; //the String array the ComboBox uses

private JComboBox<String> conversionCombo; //defining the JComboBox.
conversionCombo = new JComboBox<String>(list); // creating JComboBox

thing2(设置UI元素-在本例中为JComboBox):

import java.io.IOException;

import javax.swing.JFrame;
import javax.swing.JLabel;


public class thing1 {

    public static void main(String[] args) throws IOException {

        JFrame frame = new JFrame("Thing");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        thing2 thing2 = new thing2();

        frame.getContentPane().add(thing2);

        frame.pack();
        frame.setVisible(true);
    }
}

应该能够对此进行编译并查看问题。在这种情况下,如果您要从下拉列表中选择任何内容,然后将鼠标移到组合框内(例如:https://i.imgur.com/Z2Slrl3.gifv),将其移动到组合框的右侧,则会出现“残像”。

0 个答案:

没有答案